App Troubleshooting & Post-Deployment Management
Diagnose deployment failures, domain issues, DB connection problems — plus updating specs, monitoring, and app lifecycle management.
App Troubleshooting & Post-Deployment Management
Deploying an app is just the beginning. Managing deployed applications — monitoring status, diagnosing issues, updating specifications, and handling failures — is critical for maintaining a reliable service. This guide covers the complete lifecycle after deployment: troubleshooting common problems, updating running apps, and managing ownership.
Deployment Stages
After submitting an app spec, your deployment progresses through these stages:
| Stage | Duration | What Happens |
|---|---|---|
| Pending | 1-5 min | App spec is broadcast to the network. Nodes evaluate if they have sufficient resources. |
| Starting | 2-5 min | Accepted nodes pull the Docker image and start the container. |
| Running | Ongoing | App is live and accessible via Flux domain or custom domain. |
Common Deployment Failures
- 1
Image not found / pull error
The Docker image doesn't exist or is private without enterprise mode. Verify the repotag exactly matches your Docker Hub repository (case-sensitive). Ensure the image is set to "public" on Docker Hub.
- 2
Container crashes immediately (CrashLoopBackOff)
The application inside the container is crashing on startup. Common causes: missing environment variables, wrong CMD/entrypoint, application error. Test your image locally with: docker run -e KEY=VALUE yourusername/image:tag
- 3
Port conflict
The containerPorts don't match what your application actually listens on. Verify your application binds to 0.0.0.0 (not localhost/127.0.0.1) on the expected port.
- 4
Insufficient resources
No nodes have enough available resources for your spec. Try reducing cpu, ram, or hdd values, or reduce the number of instances.
- 5
App stuck in Pending
Network may be congested or your resource requirements exceed what's available. Wait 10-15 minutes. If still pending, try adjusting resources down or deploying at off-peak hours.
- 6
Health check failures
Your app starts but doesn't respond on the expected port in time. Add a /health endpoint and ensure the app is ready to serve requests within 60 seconds of startup.
Domain Troubleshooting
- •CNAME not resolving: DNS propagation can take up to 48 hours. Use dig or nslookup to check propagation. CloudFlare changes are typically faster (minutes).
- •SSL certificate errors: Flux uses Let's Encrypt for automatic SSL. If the certificate hasn't provisioned yet, wait 10-15 minutes. Ensure your CNAME points to the correct Flux domain.
- •Wrong domain routing: Verify the domains array in your spec exactly matches your CNAME target. Domains are case-sensitive.
- •Mixed content warnings: If your app serves HTTP content on an HTTPS page. Ensure all internal URLs use relative paths or HTTPS.
Database Connection Issues
- •Connection refused: Verify the database component name matches the hostname in your connection string. Use the component name (from the spec), not localhost or an IP.
- •Authentication failed: Check that environment variables for database credentials match between the database and application components.
- •Timeout: Ensure the database component has started before the application tries to connect. Add retry logic to your app's database connection code.
- •Data not persisting: Verify containerData is configured correctly and points to the directory where the database stores its data files.
Updating a Deployed App
After deploying, you can modify any aspect of your app specification without redeploying from scratch:
- •Update Docker image: Push a new version to Docker Hub, then update the repotag in your spec. Flux nodes pull the new image.
- •Change resources: Adjust cpu, ram, hdd values. The app may be migrated to nodes that match the new requirements.
- •Modify environment variables: Update environmentParameters to change configuration, rotate secrets, or adjust settings.
- •Add/change domains: Update the domains array to point to new custom domains.
- •Change ports: Modify ports and containerPorts as needed.
- •Transfer ownership: Change the owner field to transfer the app to a different Zel ID.
To update: navigate to home.runonflux.io > Applications > Management, find your app, and submit an updated specification. The update is broadcast to the network and applied within minutes.
Monitoring Deployed Apps
- •FluxOS UI: Access any node running your app at http://NODE_IP:16126 to see your app status, resource usage, and logs
- •Flux Explorer: Search for your app on home.runonflux.io to see all instances, their locations, and status
- •FluxOS API: Query http://NODE_IP:16127/apps/installedapps for programmatic monitoring
- •External monitoring: Use UptimeRobot or similar tools to monitor your app's public endpoints
Stopping & Removing an App
To remove a deployed app, navigate to home.runonflux.io > Applications > Management, find your app, and select Remove Application. This stops all instances across the network and frees the resources. Note that all data in containerData volumes is permanently deleted when an app is removed.
Removing an app is irreversible. Back up any important data from containerData volumes before removing. If you only need to temporarily pause, consider reducing instances to 0 instead of removing entirely.
Other articles in FluxCloud Advanced Deployment
Docker Prerequisites & Best Practices for Flux
Install Docker, create optimized Dockerfiles, multi-stage builds, image registries, containerData volumes, and common mistakes.
Compose v4: Multi-Component Applications
Deploy up to 5 components with Flux Compose v4 — internal DNS, inter-component communication, ports, and environment variables.
Enterprise Deployments (Private Images, Secrets & Static IP)
Enterprise mode features — private Docker registries, secrets management, static IPs, node targeting, and pricing.
Deploy with Git (CI/CD & Auto-Deploy)
Auto-deploy from GitHub/GitLab/Bitbucket — webhooks, polling, zero-downtime updates, rollback, and CI/CD integration.
Flux-Orbit: Zero-Config Universal Deployment
Deploy any project without a Dockerfile — auto-detection for Node.js, Python, Rust, Go, Java, Bun, Ruby, and static sites.
Shared Databases & Auto-Replication
Deploy databases on Flux with persistent storage — MongoDB, PostgreSQL, Redis replication strategies and backup patterns.
Tiered Resources, Spec Builder & Cost Calculator
Basic/Super/BAMF resource tiers, Visual Spec Builder, Cost Calculator, pricing model, and cloud cost comparison.