Fix an Expo splash screen that never disappears
By Gistmax Tutorials · 2026-11-04
The launch screen remains visible indefinitely after startup. The application waits for a resource that failed to load and never reaches its hide call.
Why this happens
Manual splash-screen control makes the app responsible for completing the startup lifecycle. An unhandled error or an unresolved readiness condition can leave the splash visible forever.
Step-by-step solution
1. Inspect the startup tasks and define which resources are truly required before rendering. Give network-dependent work a failure path.
2. Coordinate preventAutoHideAsync and hideAsync with the documented lifecycle. Ensure both successful and failed initialisation reach a visible application state.
3. Show an actionable error or retry screen if essential startup work fails. Avoid keeping the splash indefinitely as a substitute for error handling.
Worked example
If loading a custom font fails, decide whether to continue with a system font or show an error. In either case, the user needs a rendered screen rather than an endless launch image.
Verify the fix
Test successful startup, a failed resource load and an offline launch. Validate the splash in an appropriate built app because development environments may not reproduce every native detail.
Prevent a repeat
Keep startup work minimal and test cold starts after native configuration changes. Rebuild when splash configuration requires a new binary.
Reference
Official documentation or standards guidance
An original Gistmax troubleshooting guide. Scenarios and sample values are illustrative; configuration depends on your software version and environment. Cover diagram: Gistmax Tutorials.