Lifetime Management

Automatic Clean Up

In order to maintain its memory use, the JetStream server cleans up unused objects. This process cleans up the following objects once they have expired:


Expiration Policy


48 hours after the transfer has completed (or failed).


48 hours after creation unless a Transfer or Shared link still refers to it.

Shared links

Once it’s time limit, as set in createSharedToken(), has been reached.

By default, clean up process runs hourly, removing objects that have been unused or expired for 48 hours. The clean up interval and object expiration time limit can be adjusted using the updateGarbageCollectSettings() API function. Clean up can be triggered instantly using the garbageCollect() API function.

The server’s current settings can be read from Garbage Collection Structure from the getServerInfo() API function.


Some objects are preserved across restarts of the server, so long as a persistent state directory is specified (the server is started with --persistent-state-dir):


Storage Policy


Stored unless --persistent-destinations is set to false.


Stored unless --persistent-transfers is set to false.


Stored if referenced by a Transfer or Shared link.

Shared links

Always stored.

These objects will be removed from persistent storage once they are deleted (either explicitly or via Automatic Clean Up).


On multi-user Windows systems, if not using the default service settings, the Act as part of the operating system (SeTcbPrivilege) right may be required.