diff --git a/dumux/freeflow/navierstokes/momentum/localresidual.hh b/dumux/freeflow/navierstokes/momentum/localresidual.hh
index 54d44144bc078c3d1825ae540ac52f1a53f19e03..41807e13022baa0a816676649964004c59f28319 100644
--- a/dumux/freeflow/navierstokes/momentum/localresidual.hh
+++ b/dumux/freeflow/navierstokes/momentum/localresidual.hh
@@ -212,6 +212,13 @@ public:
                                            const SubControlVolumeFace& scvf) const
     {
         static_assert(FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::fcstaggered); // TODO overload this method for different discretizations
+        static_assert(
+            std::decay_t<decltype(
+                problem.neumann(element, fvGeometry, elemVolVars, elemFluxVarsCache, scvf)
+            )>::size() == ModelTraits::dim(),
+            "The momentum model expects problem.neumann to return a vector of size dim. "
+            "When in doubt you should be able to use 'using NumEqVector = typename ParentType::NumEqVector;'."
+        );
         assert(elemBcTypes.hasNeumann());
 
         const auto& scv = fvGeometry.scv(scvf.insideScvIdx());