When to Use
Use fal apps rollout when you need to replace all runners for an application without redeploying:
- Environment variable changes: Force runners to pick up updated secrets or environment variables
- Bad state recovery: Replace runners that may be in an unhealthy state
- Memory cleanup: Force garbage collection and memory cleanup across all runners
- Configuration updates: Apply changes that require a fresh runner
- Machine type changes: Move existing runners onto a machine type you changed with
fal apps scale — see Changing Machine Types
Graceful vs Force Rollout
Graceful Rollout (Default)
Brings up replacement runners before draining the existing ones, so requests are not interrupted. This is the recommended approach for most situations.
How it works:
- Identifies all active runners for the application
- Marks each one for replacement — they keep serving requests in the meantime
- Starts replacement runners on the application’s current configuration
- As each new runner finishes starting up and joins the application, one marked runner stops accepting new requests and drains the ones it is still processing
Replacements are started in parallel rather than one at a time, so while the rollout is in progress the application can run close to double its usual runner count — and is billed for both sets. If your account’s GPU limits are already fully consumed, replacements wait until capacity frees up and the marked runners keep serving in the meantime.
Force Rollout
Immediately kills all active runners without waiting for current requests to complete. Use this when runners are unresponsive or when you need an immediate restart.
How it works:
- Identifies all active runners for the application
- Immediately terminates all runners
- New runners are automatically started by the auto-scaling system
Force rollout will terminate in-flight requests, potentially causing errors for active users. Use the graceful rollout (without --force) unless absolutely necessary.
Examples
Rollout after updating a secret
Rollout in a specific environment
Force rollout to recover from frozen runners
Difference from Redeployment
fal apps rollout is different from fal deploy:
fal apps rollout: Replaces existing runners without creating a new revision, so they come up on the app’s current configuration. Useful for applying environment or machine-type changes and recovering from bad states.
fal deploy: Creates a new revision of your application with updated code and configuration. Use this when you’ve made code changes.
See Also