diff --git a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
index 5ad342225d1c5c6bd61f5280d2e789b3b4bb6173..fa0f3bada3bb0eb21edcdd7eb94818bbf07f03b4 100644
--- a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
+++ b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
@@ -304,6 +304,7 @@ scalar surfaceNoise::writeSurfaceData
                     false  // serial - already merged
                 );
 
+                writerPtr_->nFields(1); // Legacy VTK
                 writerPtr_->write(title, allData);
 
                 writerPtr_->endTime();
@@ -341,6 +342,7 @@ scalar surfaceNoise::writeSurfaceData
                 false  // serial - already merged
             );
 
+            writerPtr_->nFields(1); // Legacy VTK
             writerPtr_->write(title, data);
 
             writerPtr_->endTime();
diff --git a/src/surfMesh/writers/vtk/vtkSurfaceWriter.C b/src/surfMesh/writers/vtk/vtkSurfaceWriter.C
index 65df3d04a5cab0ed40e35aace289f410294a89c3..016351e62121bd28d76a65882aa29098b8f6c39a 100644
--- a/src/surfMesh/writers/vtk/vtkSurfaceWriter.C
+++ b/src/surfMesh/writers/vtk/vtkSurfaceWriter.C
@@ -289,6 +289,22 @@ Foam::fileName Foam::surfaceWriters::vtkWriter::writeTemplate
 
     if (Pstream::master() || !parallel_)
     {
+        if (!nFields_ && writer_->legacy())
+        {
+            // Emit error message, but attempt to recover anyhow
+            nFields_ = 1;
+
+            FatalErrorInFunction
+                << "Using VTK legacy format, but did not define nFields!"
+                << nl
+                << "Assuming nFields=1 (may be incorrect) and continuing..."
+                << nl
+                << "    Field " << fieldName << " to " << outputFile << nl;
+
+            Info<< FatalError;
+            Info<< endl;
+        }
+
         if (this->isPointData())
         {
             writer_->beginPointData(nFields_);