Temporal Troubleshooting
Resolve common issues when running Temporal in Compozy.
Quick Diagnostics
- Check ports
lsof -i :7233-7236shows which process is using Temporal service ports. Release conflicting processes or configure a differentfrontend_port. - Inspect logs
Run
COMPOZY_LOG_LEVEL=debugand settemporal.standalone.log_level=debugto stream Temporal server logs through the CLI. - Validate namespace
temporal namespace describeconfirms the namespace exists and is reachable when operating in remote mode.
Port Conflicts
| Symptom | Resolution |
|---|---|
listen tcp 127.0.0.1:7233: bind: address already in use | Change temporal.standalone.frontend_port (all services shift with it) or stop the conflicting process. |
| Temporal UI fails to start because 8233 is in use | Set temporal.standalone.ui_port to an available port or disable the UI with enable_ui: false. |
| Remote mode cannot reach Temporal | Verify firewall rules and TLS configuration. Use temporal workflow list --namespace <ns> from the same host. |
SQLite Issues
- Permission denied
Ensure the directory containing
database_fileexists and is writable. For CI, create a tmp directory before launching Compozy. - Corrupted database
Delete the SQLite file and restart. Use
:memory:for transient runs or swap to a clean path per test. - Slow startup
Large disk-backed SQLite files slow boot time. Prune old history or use
:memory:during development.
Startup Timeouts
If you see standalone Temporal failed to start within 30s:
- Increase
temporal.standalone.start_timeout(e.g.60s) for slower laptops or CI. - Check that the host ports are free; Temporal will not start if they are already bound.
- For remote mode, confirm the Temporal cluster is reachable and healthy. Latency or TLS negotiation failures can exhaust the timeout.
Temporal UI Not Accessible
- Confirm
enable_ui: trueand that the UI port is open. - For standalone mode, open
http://127.0.0.1:<ui_port>. If you bound to0.0.0.0, use the machine IP explicitly. - Behind reverse proxies, configure allowed hosts and TLS termination before exposing the UI to other users.
Performance & Throughput
- Standalone mode uses SQLite and a single worker process—expect lower throughput than production clusters.
- To simulate production load, switch to remote mode against a staging Temporal cluster.
- Monitor metrics via Compozy’s Prometheus endpoint; look for high
workflow_task_schedule_to_start_latencywhen load grows.
Escalation Checklist
- Capture logs
Attach Compozy and Temporal logs when filing an issue.
- Record configuration
Include
temporalandstandalonesections ofcompozy.yamland any CLI overrides you used. - Note versions
Provide the Compozy version, Go runtime version, and Temporal server version if running remotely.