Troubleshooting
Common problems and solutions for Oore CI operators.
Daemon won't start
"Address already in use"
Another process is using port 8787:
lsof -i :8787Either stop the other process or start oored on a different port:
oored run --listen 127.0.0.1:8788"Database locked"
Another oored process or an oore CLI command is holding the database lock. Check for running processes:
ps aux | grep ooreOnly one oored instance should run per database file.
Permission errors on database
ls -la ~/Library/Application\ Support/oore/Ensure the current user has read/write access to the database and encryption key files.
encryption.key permission errors
oored uses file-based key storage in this release. If startup fails due encryption key file permissions, fix ownership on the data directory:
chown -R "$USER":staff ~/Library/Application\ Support/oore
chmod 700 ~/Library/Application\ Support/oore
chmod 600 ~/Library/Application\ Support/oore/encryption.key 2>/dev/null || trueBuilds stuck in "queued"
Embedded runner not starting
In default mode, oored starts an embedded runner automatically. If builds stay queued:
- Check daemon logs for runner-related errors
- Verify the daemon is running in default mode (not
OORED_RUNNER_MODE=external)
External runner not connected
If using external mode:
- Check that
oore runner startis running - Verify the runner config points to the correct daemon URL
- Check Settings > Runners in the UI for runner status
Runner claiming but builds failing immediately
Check the build logs for errors. Common causes:
- Flutter/FVM not installed on the runner machine
- Incorrect Flutter version requested
- Missing Xcode for iOS builds
Run make doctor on the runner machine to verify the toolchain.
OIDC authentication failures
"OIDC discovery failed"
The daemon can't reach the OIDC provider:
- Verify internet access from the daemon host
- Test discovery manually:bash
curl https://your-issuer-url/.well-known/openid-configuration - Check for trailing slashes in the issuer URL
- Verify DNS resolution
"user_not_found" after successful OIDC login
The user authenticated with the OIDC provider but doesn't have an account in Oore CI:
- The user needs to be invited first
- The invitation email must exactly match the email in the OIDC provider's ID token
"Redirect URI mismatch"
The redirect URI sent by Oore CI doesn't match what's configured in the OIDC provider:
- Check the provider's allowed redirect URIs
- Ensure
httpvshttpsmatches - Check for port number mismatches
- Check for trailing slashes
Hosted UI connectivity issues
Hosted UI shows "Failed to fetch" during setup/login
If you are using https://ci.oore.build, your backend must be reachable over HTTPS. The hosted UI cannot access local-only HTTP addresses like http://127.0.0.1:8787.
Use one of these paths:
- CLI-only setup:bash
oore setup - Expose backend via tunnel:bash
cloudflared tunnel --url http://127.0.0.1:8787 - Run bundled local web UI for local-only backend development:bashThen add an instance and leave Backend URL empty in the UI.
oore-web --backend-url http://127.0.0.1:8787
Local web UI does not open
Check local web logs:
cat ~/.oore/logs/oore-web.logVerify local web health:
curl http://127.0.0.1:4173/__oore_web_healthzIf launch-at-login was enabled and you need to reload it:
launchctl bootout gui/$(id -u)/build.oore.oore-web 2>/dev/null || true
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/build.oore.oore-web.plistSigning failures
"Certificate not found" or "Profile not found"
The signing assets may not be configured for the pipeline:
- Open the pipeline's Signing tab in the UI
- Verify the certificate and profile are uploaded
- For API mode, try clicking Sync to refresh from App Store Connect
"codesign failed" in iOS builds
- Verify the
.p12password is correct - Check that the provisioning profile matches the certificate
- For ad hoc builds, verify the test device is registered in the profile
Artifact download failures
"Download link expired"
Generate a new download link — they are time-limited.
"Storage not configured"
Go to Settings > Artifact Storage and configure a storage backend. Without storage configured, artifact uploads silently fail.
Database issues
Corrupt database
If the SQLite database is corrupt:
- Stop the daemon
- Restore from a backup (see Backup and Restore)
- If no backup exists, delete the database file and re-run setup
Reset the instance
To completely reset an instance:
rm ~/Library/Application\ Support/oore/oore.db
rm ~/Library/Application\ Support/oore/encryption.key
oored runDANGER
This permanently destroys all instance data including users, projects, builds, and signing credentials.