Extracting boundary nodes from an unstructured grid

Dear all,

I try to extract the boundary nodes of an unstructured grids. Based on the example
https://vtk.org/Wiki/VTK/Examples/Cxx/Meshes/BoundaryEdges
I used the following code:

vtkSmartPointer grid = vtkSmartPointer::New();
vtkSmartPointer filter = vtkSmartPointer::New();
vtkSmartPointer edges = vtkSmartPointer::New();

/* load mesh into grid */

/* extract the boundary points */

filter->SetInputData(grid);
filter->Update();
edges->SetInputData(filter->GetOutput());
edges->BoundaryEdgesOn();
edges->FeatureEdgesOff();
edges->NonManifoldEdgesOff();
edges->ManifoldEdgesOff();
edges->Update();

vtkSmartPointer polyData = edges->GetOutput();

When I print out the number of the points in polydata (polydata->GetNumberOfPoints()) I obtain 0, i.e.
polydata is empty. When I comment out the lines

edges->NonManifoldEdgesOff();
edges->ManifoldEdgesOff()

then I get some subset of points in polydata extrated from the grid but when I visualize these points I see
that some boundary points are missing and there are some inner nodes in polydata. Thus
polydata does not contain the exact set of the boundary points of the grid.
Now I am not sure if this is the correct way to extract the boundary points from an unstructured grid
and I would like to ask if there is any. Thank you very much for your help!

Kind regards,
Zoltan