Troubleshooting
When you hit a problem, first check it against the symptoms in this chapter. If none match, contact us via "Getting help" at the end.
1. No video (Live keeps buffering)
| Possible cause | How to verify | Fix |
|---|---|---|
| Wrong RTSP URL | Try the same URL in VLC | Change the URL and re-save; when ONVIF auto-discovery returns a wrong address, switch to manual RTSP |
| Wrong credentials | The web admin reports auth failure | Go to camera details and change the password; the ONVIF password ≠ the RTSP password |
| Low-latency channel blocked | DevTools → Network shows a connection error | Open UDP 23515 in the firewall; if you can't, it auto-switches to the stable channel (2–4s latency) |
| Camera uses a proprietary protocol (Tapo / Xiaomi) | The camera brand isn't in the Cameras list | Use a go2rtc bridge |
| The streaming gateway didn't start | docker logs yunkan for startup errors | Usually a port conflict; try restarting the container |
2. Playback is black / the progress bar won't move
- Recording isn't on: Camera details → Recording settings → enable
- Disk full:
df -hto check the partition holding data, then delete old recordings or shorten the retention days - Corrupted recording segment: find the matching
data/recordings/<id>/<date>/<HH-MM-SS>.mp4and try playing it in VLC; a corrupted segment loses at most 5 minutes - Wrong time: if the server and camera time zones are out of sync, the playback timeline is off by 8 hours; check with
timedatectl
3. AI detection isn't working
| Symptom | Cause | Fix |
|---|---|---|
| The events page stays empty | The global detection toggle is off | Settings → Detection → enable |
| One camera doesn't detect | That camera has a "detection failed" status | Camera details → "Clear detection error" |
| GPU at 0 usage | Wrong image variant (running the cpu image on a GPU box) | Pull the matching variant image and restart |
| Faces always "Stranger" | This person was never added / the threshold is too strict | Add the face / lower the face similarity threshold |
| Many false fall alerts | The descent-velocity threshold is too low | Raise the fall descent-velocity threshold a bit |
4. The container keeps restarting
Use docker logs --tail 200 yunkan to see the last output. Common errors:
- Missing config: in wizard mode but the health check fails → just finish the /setup wizard in the browser
- Port in use:
ss -tnlp | grep 23406, then stop the conflicting service or change the port - Hardware files not mounted: the bind-mount didn't include
/etc/machine-id, so license validation crashes; add it per Installation - Unsupported architecture: SkyView publishes x86_64 images only and can't run on ARM machines (
uname -mshould outputx86_64)
5. Uploading to 115 fails
- Login expired (about 30 days): Settings → 115 → re-scan to log in
- VIP expired: very large files need 115 VIP's instant-upload channel; non-VIP uses a rate-limited channel
- Target folder deleted: recreate the folder in 115, then return to SkyView and re-select it
- Unstable network: upload tasks have built-in retries; check
docker logs yunkanfor the specific error
6. Automation doesn't trigger
- Quiet hours: Settings → Notifications → Quiet hours, check whether you're currently within that window
- Cooldown: repeated events within 30 seconds are swallowed; lower the cooldown or use a different event type
- Condition mismatch: the rule added "recognized person = Zhang San" but it was actually recognized as "Stranger", so the rule won't trigger; relax the condition
- MQTT not connected: Settings → Integrations → MQTT to check the connection status, and verify the address / credentials
7. The wizard reappears after upgrading / data is gone
Jumping to /setup after an upgrade is almost always because the data directory wasn't mounted correctly — the container can't see the config file written last time, so it assumes a fresh install. Check:
bash
docker inspect yunkan | grep -A 2 Mounts
# You should see Source: /home/.../data, Destination: /app/data
# If the path changed / isn't mounted, docker rm the container and mount it correctly on the next docker runNever go through the wizard again
Going through setup writes a new empty database; the original is still there but deactivated. Stop the container first, fix the mount, and restart — you'll go straight into normal mode.
8. How to read logs
bash
# Single-image deploy: all logs are mixed together
docker logs --tail 500 -f yunkan
# To see only detection-related:
docker logs yunkan 2>&1 | grep -i detection
# Multi-container deploy: each component is separate
docker compose logs -f api detectionGetting help
- Support ticket: Customer portal → My Orders → Open a ticket, attach the output of
docker logs --tail 200 yunkan, fastest follow-up - Email: support@yun-kan.com (reply within 24 hours)
- WeChat group: after purchase, the "My Orders" page in the customer portal has a group QR code (paid users only)