diff --git a/src/TNL/Meshes/MeshDetails/Traverser_impl.h b/src/TNL/Meshes/MeshDetails/Traverser_impl.h
index 9d449c87517414de96a5fd191271b7e9f71d916a..88a11d1b78f8c42cbab9f9cf043eaadfbd166884 100644
--- a/src/TNL/Meshes/MeshDetails/Traverser_impl.h
+++ b/src/TNL/Meshes/MeshDetails/Traverser_impl.h
@@ -173,6 +173,8 @@ processBoundaryEntities( const MeshPointer& meshPointer,
       ( &meshPointer.template getData< Devices::Cuda >(),
         &userDataPointer.template modifyData< Devices::Cuda >(),
         entitiesCount );
+   cudaDeviceSynchronize();
+   checkCudaDevice;
 #else
    CudaSupportMissingMessage;
 #endif
@@ -203,6 +205,8 @@ processInteriorEntities( const MeshPointer& meshPointer,
       ( &meshPointer.template getData< Devices::Cuda >(),
         &userDataPointer.template modifyData< Devices::Cuda >(),
         entitiesCount );
+   cudaDeviceSynchronize();
+   checkCudaDevice;
 #else
    CudaSupportMissingMessage;
 #endif
@@ -233,6 +237,8 @@ processAllEntities( const MeshPointer& meshPointer,
       ( &meshPointer.template getData< Devices::Cuda >(),
         &userDataPointer.template modifyData< Devices::Cuda >(),
         entitiesCount );
+   cudaDeviceSynchronize();
+   checkCudaDevice;
 #else
    CudaSupportMissingMessage;
 #endif