Direct answer

Cross-region or cross-world teleports may wait for destination chunks and region scheduling. Plugins must not assume a synchronous teleport is complete before accessing an entity on its new region.

How to check it

  1. Measure delay separately for warm-chunk teleports, new-chunk teleports and dimension transfers.
  2. Check the specific teleport, portal or home plugin for Folia compatibility and any region-thread exceptions.
  3. Determine whether destination chunk generation/loading, not movement itself, is responsible for the delay.

What to change

  1. Preload or pregenerate frequently used destination areas when supported; never force-load arbitrary chunks just to conceal a bug.
  2. For plugin developers, use the entity-owning region scheduler and supported asynchronous teleport APIs. Handle completion and failure before accessing the entity at its destination.

Software and version notes

Compatibility and safety

The Folia design explicitly separates teleport transformation from asynchronous placement. Exact plugin API signatures depend on the Folia/Paper build; test against the matching API rather than copying an old method call.

Verify the result

Repeat portal, home, cross-world and logout-during-teleport tests; verify correct coordinates, inventory and absence of region-ownership errors.

References