diff --git a/dumux/io/staggeredvtkoutputmodule.hh b/dumux/io/staggeredvtkoutputmodule.hh
index cca5ddf6e79108acac09270c882a703a667d03f3..cb298c205776a934b875f42ffc647bed7a9da619 100644
--- a/dumux/io/staggeredvtkoutputmodule.hh
+++ b/dumux/io/staggeredvtkoutputmodule.hh
@@ -130,7 +130,7 @@ public:
     void addFaceField(const std::vector<DimVector>& v, const std::string& name)
     {
         if (v.size() == this->gridGeom_.gridView().size(1))
-                faceFieldVectorDataInfo_.emplace_back(v, name);
+            faceFieldVectorDataInfo_.emplace_back(v, name);
         else
             DUNE_THROW(Dune::RangeError, "Size mismatch of added field!");
     }
diff --git a/dumux/io/vtkfunction.hh b/dumux/io/vtkfunction.hh
index 885ffa7e0a663a134306d3f5b441c0190b936780..e5fc35902cee6cddee33c2f50c0ed522da48fd52 100644
--- a/dumux/io/vtkfunction.hh
+++ b/dumux/io/vtkfunction.hh
@@ -65,8 +65,9 @@ public:
     VectorP0VTKFunction(const GridView& gridView, const Mapper& mapper, const F& field, const std::string& name, int nComps)
     : field_(field), name_(name), nComps_(nComps), mapper_(mapper)
     {
-        if (field.size()!=(unsigned int)( gridView.size(/*codim*/0)) )
-            DUNE_THROW(Dune::IOError, "VectorP0VTKFunction: size mismatch");
+        if (field.size()!=(unsigned int)(mapper.size()))
+            DUNE_THROW(Dune::IOError, "VectorP0VTKFunction: size mismatch between field "
+                                       << name << " (" << field.size() << ") and mapper (" << mapper.size() << ")");
     }
 
 private:
@@ -131,7 +132,8 @@ public:
     : field_(field), name_(name), nComps_(nComps), mapper_(mapper)
     {
         if (field.size()!=(unsigned int)( mapper.size() ))
-            DUNE_THROW(Dune::IOError, "VectorP1VTKFunction: size mismatch");
+            DUNE_THROW(Dune::IOError, "VectorP1VTKFunction: size mismatch between field "
+                                      << name << " (" << field.size() << ") and mapper (" << mapper.size() << ")");
     }
 private:
 
@@ -198,8 +200,9 @@ public:
     VectorP1NonConformingVTKFunction(const GridView& gridView, const Mapper& mapper, const F& field, const std::string& name, int nComps)
     : field_(field), name_(name), nComps_(nComps), mapper_(mapper)
     {
-        if (field.size()!=(unsigned int)( gridView.size(/*codim*/0)) )
-            DUNE_THROW(Dune::IOError, "VectorP1NonConformingVTKFunction: size mismatch");
+        if (field.size()!=(unsigned int)(mapper.size()))
+            DUNE_THROW(Dune::IOError, "VectorP1NonConformingVTKFunction: size mismatch between field "
+                                      << name << " (" << field.size() << ") and mapper (" << mapper.size() << ")");
     }
 private:
 
diff --git a/dumux/io/vtkoutputmodule.hh b/dumux/io/vtkoutputmodule.hh
index e1614b276775d8193460d8d014627ae98a5b4a8e..813f880fb25664d0c5f44026ff6b205d2fbe093f 100644
--- a/dumux/io/vtkoutputmodule.hh
+++ b/dumux/io/vtkoutputmodule.hh
@@ -85,6 +85,7 @@ class VtkOutputModule
     using VelocityVector = Dune::FieldVector<Scalar, dimWorld>;
 
     static constexpr bool isBox = FVGridGeometry::discMethod == DiscretizationMethod::box;
+    static constexpr int dofCodim = isBox ? dim : 0;
 
     struct VolVarScalarDataInfo { std::function<Scalar(const VV&)> get; std::string name; };
     struct VolVarVectorDataInfo { std::function<VolVarsVector(const VV&)> get; std::string name; };
@@ -129,15 +130,6 @@ public:
     //! Do not call these methods after initialization i.e. _not_ within the time loop
     //////////////////////////////////////////////////////////////////////////////////////////////
 
-    //! Output a scalar volume variable
-    //! \param name The name of the vtk field
-    //! \param f A function taking a VolumeVariables object and returning the desired scalar
-    DUNE_DEPRECATED_MSG("Will be removed after next release. Please use addVolumeVariable(function, name) instead!")
-    void addSecondaryVariable(const std::string& name, std::function<Scalar(const VolumeVariables&)>&& f)
-    {
-        volVarScalarDataInfo_.push_back(VolVarScalarDataInfo{f, name});
-    }
-
     //! Output a scalar volume variable
     //! \param name The name of the vtk field
     //! \param f A function taking a VolumeVariables object and returning the desired scalar
@@ -279,7 +271,7 @@ private:
             || addProcessRank)
         {
             const auto numCells = gridGeom_.gridView().size(0);
-            const auto numDofs = gridGeom_.numDofs();
+            const auto numDofs = numDofs_();
 
             // get fields for all volume variables
             if (!volVarScalarDataInfo_.empty())
@@ -452,7 +444,7 @@ private:
             || addProcessRank)
         {
             const auto numCells = gridGeom_.gridView().size(0);
-            const auto numDofs = gridGeom_.numDofs();
+            const auto numDofs = numDofs_();
 
             // get fields for all volume variables
             if (!volVarScalarDataInfo_.empty())
@@ -594,6 +586,9 @@ private:
     template<class Vector, typename std::enable_if_t<!IsIndexable<decltype(std::declval<Vector>()[0])>::value, int> = 0>
     std::size_t getNumberOfComponents_(const Vector& v) { return 1; }
 
+    //! return the number of dofs
+    std::size_t numDofs_() const { return gridGeom_.gridView().size(dofCodim); }
+
     const Problem& problem_;
     const FVGridGeometry& gridGeom_;
     const GridVariables& gridVariables_;
diff --git a/test/freeflow/navierstokes/CMakeLists.txt b/test/freeflow/navierstokes/CMakeLists.txt
index 6056f26f402b57379fdd8219829da90708993108..6710a285d346d3294145c8fc1935508d5a669624 100644
--- a/test/freeflow/navierstokes/CMakeLists.txt
+++ b/test/freeflow/navierstokes/CMakeLists.txt
@@ -1,6 +1,6 @@
 add_input_file_links()
 dune_symlink_to_source_files(FILES convergence.sh)
-set(CMAKE_BUILD_TYPE Debug)
+set(CMAKE_BUILD_TYPE Release)
 add_executable(test_closedsystem EXCLUDE_FROM_ALL test_closedsystem.cc)
 
 dune_add_test(NAME test_navierstokes_liddrivencavity_re1