Skip to main content

Critical Quirks

These are the most common implementation mistakes. Each one can cause silent, hard-to-debug failures.

Timing Reference


Battery Voltage Thresholds

When battery drops below 3.6V, the device goes completely offline and reconnects only after voltage recovers above 3.8V. Recommendation: Queue updates for offline devices and deliver them on the next subscribe after reconnect.

URL Port Requirement

Always include an explicit port in server URLs. Even for standard ports.
Without an explicit port, the device’s URL parser fails to extract the port for TCP keepalive offload (WoWLAN). Result: the server can push data but the device does not wake — it stays asleep until its safety-net timer fires. The NLE server automatically appends the explicit port via api_origin_with_port when generating URLs in the entry response.

Entry Key expires Field

The expires field in the passphrase response must be a JSON number, not a string:
The expiration must also be at least 30 minutes in the future from the device’s perspective.

Session ID Behavior

The device’s session field in subscribe requests is not a unique connection identifier. The device reuses the same session value across all subscribe requests during its operational lifetime. Do not use session to track or de-duplicate subscriptions. Generate your own server-side subscription ID for each connection.

Overlapping Subscriptions

When a device wakes early, it may send a new subscribe request before the previous connection closes. Your server may briefly hold two active subscriptions for the same device. This is normal. Push data to all active subscriptions for a device. Remove a subscription only when its specific connection closes. Never close a subscription because a newer one arrived.