App stops after ~1 min without internet — System clock 1970 issue on OAK4-D R9
Device Info
oakctl device info --check_internet
OS: Luxonis OS RVC4 1.27.1 Agent Version: 0.18.3 (rvc4) Architecture: linux/arm64 Serial Number: 1664057878 Model: Luxonis, Inc. OAK4-D R9 Setup: OK Internet: Unavailable Hub Adoption: Unadopted GPU: Not supported
Setup / Network
OAK4-D R9 connected to a PoE router
PC also connected to the same PoE router (PC IP: 172.19.1.23)
Camera has a static IP 172.19.1.22 configured via nmcli
Internet is available via a separate LAN cable but in our use case, internet is not always available
App is deployed using "oakctl app build . --keep" and started with "oakctl app start <app_id>"
Problem
When the camera boots without internet, the system clock resets to 1970-01-01. This causes the app to fail and stop after approximately 60 seconds.
The app itself starts correctly — models load from local cache, pipeline builds successfully — but then the oak-agent kills everything due to credential/WebRTC failures caused by the invalid system time.
App Logs (without internet)
[1970-01-01T00:01:42Z] [MAIN] platform=RVC4 [1970-01-01T00:01:42Z] [MAIN] det_model exists=True path=/app/models/mediapipe_palm_detection.RVC4.rvc4 [1970-01-01T00:01:42Z] [MAIN] pose_model exists=True path=/app/models/mediapipe_hand_landmarker.RVC4.rvc4 [1970-01-01T00:01:42Z] [DAI] Loading models from local cache <- models load fine [1970-01-01T00:01:42Z] CONNECTION - System time is: Thu Jan 1 00:01:42 UTC 1970, which is invalid. Waiting for system time to be updated [1970-01-01T00:01:43Z] [DAI] Creating pipeline ... [1970-01-01T00:01:43Z] OAK_WEBRTC - System is not ready to start oak_webrtc (missing credentials from Agent) [1970-01-01T00:01:45Z] CONNECTION - System time is: Thu Jan 1 00:01:45 UTC 1970, which is invalid. Waiting for system time to be updated [1970-01-01T00:01:47Z] OAK_WEBRTC - System is not ready to start oak_webrtc (missing credentials from Agent) [1970-01-01T00:01:48Z] [DAI] Pipeline created. [1970-01-01T00:01:48Z] [DAI] Open https://<device-ip>:9000 in browser. -> App dies after ~60 seconds
Root cause chain: No internet on boot -> Clock resets to 1970 -> TLS/SSL certificate verification fails -> oak-agent cannot get credentials -> OAK_WEBRTC cannot start -> oak-agent kills the app after ~60 seconds
What We Have Already Tried
- chrony drift file persistence (based on community forum suggestion)
mount -o remount,rw / umount -l /etc echo 'OPTIONS="-s"' > /etc/default/chronyd sed -i 's|/var/lib/chrony/drift|/overlay/chrony/drift|' /etc/chrony.conf echo "makestep 10000 -1" >> /etc/chrony.conf mkdir -p /overlay/chrony systemctl restart chronyd chronyc makestep chronyc dump
- systemd drop-in to wait for overlay before chrony starts
mkdir -p /etc/systemd/system/chronyd.service.d/ cat > /etc/systemd/system/chronyd.service.d/10-overlay-wait.conf << 'EOF' [Service] ExecStartPre=/bin/sh -c 'until [ -f /overlay/chrony/drift ]; do sleep 1; done' ExecStartPre=/bin/sh -c 'date -r /overlay/chrony/drift "+%Y-%m-%d %H:%M:%S" | xargs -I{} date -s "{}"' EOF systemctl daemon-reload systemctl restart chronyd
- oakapp.toml — disabled internet model downloads
depthai_models = { yaml_path = "./depthai_models", use_only_cache = true }
Result of above fixes: Partially works — after booting once WITH internet, the camera restores April 2026 time on next offline reboot. But time drifts a few minutes per power cycle and is not reliable long term.
Questions
Is there an officially supported way to run oak apps fully offline without the 1970 clock issue killing the app?
Can chrony be configured to use a local NTP server (our PC at 172.19.1.23) so the camera always gets correct time via PoE even without internet?
Does the oak-agent credential check have a configurable timeout? Can it be extended or disabled for offline/unadopted devices?
Thank you!