| ”Detected Swift/iOS instead of Expo” | Monorepo: ios/ triggers Swift provider; expo not in local package.json | revyl init --provider expo |
| ”Detected Android instead of Expo” | Monorepo: android/ triggers Android provider | revyl init --provider expo |
| ”No providers detected” | Missing package.json, wrong directory, or no framework indicators | cd to the app directory; verify package.json has expo or react-native |
| ”App scheme empty” | Using app.config.js instead of app.json | --hotreload-app-scheme myapp or edit config |
| ”Hot reload is not configured” | hotreload: section missing from config | Re-run revyl init --provider expo or add manually |
| ”Port 8081 is already in use” | Another Metro instance running | lsof -ti:8081 | xargs kill or --port 8082 |
| ”No application is registered to handle this URL scheme” | Dev client doesn’t have the scheme registered | Toggle use_exp_prefix: true/false in config; if neither works, add scheme to app.json and rebuild |
| No URL scheme in the app | App only uses universal links | Add "scheme": "myapp-dev" to app.json, rebuild dev client |
| ”Build platform ‘ios’ not found” | build.platforms.ios missing from config | Run revyl init --force to re-detect, or add manually |
Deep link fails with LSApplicationWorkspaceErrorDomain error 115 | The URL scheme in the deep link doesn’t match any installed app | Same as “No application is registered” above |
| App closes briefly after tapping “Open” in the dialog | Normal: dev client is reloading to connect to Metro via tunnel | Wait for it to reopen; if it doesn’t, check Metro output for JS errors |
| ”Open in [App Name]?” confirmation dialog | iOS system prompt for URL scheme handoffs | Tap “Open” to proceed; this is expected behavior |