diff --git a/src/dm/impls/plex/plexcreate.c b/src/dm/impls/plex/plexcreate.c
index 920ccc69c0999efffad3c143417038565f8e6465..50c7bf11d367c9ce50c6a25324505d47dffdfc9a 100644
--- a/src/dm/impls/plex/plexcreate.c
+++ b/src/dm/impls/plex/plexcreate.c
@@ -2623,6 +2623,7 @@ static PetscErrorCode DMGetNeighbors_Plex(DM dm, PetscInt *nranks, const PetscMP
   PetscFunctionBegin;
   ierr = DMGetPointSF(dm, &sf);CHKERRQ(ierr);
   if (!data->neighbors) {
+    ierr = PetscSFSetUp(sf);CHKERRQ(ierr);
     ierr = PetscSFGetRootRanks(sf, &njranks, &jranks, NULL, NULL, NULL);CHKERRQ(ierr);
     ierr = PetscSFGetLeafRanks(sf, &niranks, &iranks, NULL, NULL);CHKERRQ(ierr);
     ierr = PetscMalloc1(njranks + niranks + 1, &data->neighbors);CHKERRQ(ierr);
