Matter/Thread: Network is unreachable error and chip.json not found on HAOS

Description:
I am running Home Assistant OS directly on a Raspberry Pi. While my Thread Border Router (OTBR) appears to be active according to the logs, I am unable to commission any Matter devices. The pairing process consistently fails.

Error Logs:
I am seeing the following errors in the Matter server logs:

s6-rc: info: service banner successfully started
s6-rc: info: service matter-server: starting
s6-rc: info: service matter-server successfully started
s6-rc: info: service legacy-services: starting
[11:16:41] INFO: Starting Matter Server...
s6-rc: info: service legacy-services successfully started
[11:16:42] INFO: Using Python Matter Server
[11:16:43] INFO: Using 'end0' as primary network interface.
[11:16:44] INFO: Successfully send discovery information to Home Assistant.
2026-04-26 11:16:53.617 (MainThread) INFO [matter_server.server.stack] 
Initializing CHIP/Matter Logging...
2026-04-26 11:16:53.618 (MainThread) INFO [matter_server.server.stack] Initializing CHIP/Matter Controller Stack...
[1777195014.849420][117:117] CHIP:CTL: Setting attestation nonce to random value
[1777195014.902187][117:117] CHIP:CTL: Setting CSR nonce to random value
[1777195015.080565][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1777195015.099378][117:117] CHIP:DL: Wrote settings to /tmp/chip_kvs
[1777195015.100077][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_factory.ini
[1777195015.108289][117:117] CHIP:DL: Wrote settings to /data/chip_factory.ini
[1777195015.108459][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_config.ini
[1777195015.121628][117:117] CHIP:DL: Wrote settings to /data/chip_config.ini
[1777195015.121875][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_counters.ini
[1777195015.131957][117:117] CHIP:DL: Wrote settings to /data/chip_counters.ini
[1777195015.187348][117:117] CHIP:DL: Wrote settings to /data/chip_factory.ini
[1777195015.187415][117:117] CHIP:DL: NVS set: chip-factory/unique-id = "4C29004A2A00A9BC"
[1777195015.200912][117:117] CHIP:DL: Wrote settings to /data/chip_factory.ini
[1777195015.201004][117:117] CHIP:DL: NVS set: chip-factory/vendor-id = 65521 (0xFFF1)
[1777195015.216279][117:117] CHIP:DL: Wrote settings to /data/chip_factory.ini
[1777195015.216377][117:117] CHIP:DL: NVS set: chip-factory/product-id = 32769 (0x8001)
[1777195015.230359][117:117] CHIP:DL: Wrote settings to /data/chip_counters.ini
[1777195015.230439][117:117] CHIP:DL: NVS set: chip-counters/reboot-count = 1 (0x1)
[1777195015.244125][117:117] CHIP:DL: Wrote settings to /data/chip_counters.ini
[1777195015.244220][117:117] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0)
[1777195015.274511][117:117] CHIP:DL: Wrote settings to /data/chip_counters.ini
[1777195015.274600][117:117] CHIP:DL: NVS set: chip-counters/boot-reason = 0 (0x0)
[1777195015.288121][117:117] CHIP:DL: Wrote settings to /data/chip_config.ini
[1777195015.288203][117:117] CHIP:DL: NVS set: chip-config/regulatory-location = 0 (0x0)
[1777195015.301778][117:117] CHIP:DL: Wrote settings to /data/chip_config.ini
[1777195015.301873][117:117] CHIP:DL: NVS set: chip-config/location-capability = 2 (0x2)
[1777195015.315693][117:117] CHIP:DL: Wrote settings to /data/chip_config.ini
[1777195015.315786][117:117] CHIP:DL: NVS set: chip-config/configuration-version = 1 (0x1)
[1777195015.316815][117:117] CHIP:DL: Got Ethernet interface: end0
[1777195015.317620][117:117] CHIP:DL: Found the primary Ethernet interface:end0
[1777195015.318292][117:117] CHIP:DL: Got WiFi interface: wlan0
[1777195015.318372][117:117] CHIP:DL: Failed to reset WiFi statistic counts
[1777195015.318389][117:117] CHIP:PAF: WiFiPAF: WiFiPAFLayer::Init()
2026-04-26 11:16:55.319 (MainThread) INFO [chip.storage] Initializing persistent storage from file: /data/chip.json
2026-04-26 11:16:55.320 (MainThread) ERROR [chip.storage] [Errno 2] No such file or directory: '/data/chip.json'
2026-04-26 11:16:55.320 (MainThread) CRITICAL [chip.storage] Could not load configuration from /data/chip.json - resetting configuration...
2026-04-26 11:16:55.321 (MainThread) WARNING [chip.storage] No valid SDK configuration present - clearing out configuration
2026-04-26 11:16:55.321 (MainThread) WARNING [chip.storage] No valid REPL configuration present - clearing out configuration
2026-04-26 11:16:55.707 (MainThread) INFO [chip.CertificateAuthority] Loading certificate authorities from storage...
2026-04-26 11:16:55.708 (MainThread) INFO [chip.CertificateAuthority] New CertificateAuthority at index 1
2026-04-26 11:16:55.734 (MainThread) INFO [chip.FabricAdmin] New FabricAdmin: FabricId: 0x0000000000000002, VendorId = 0x134B
2026-04-26 11:16:55.735 (MainThread) INFO [matter_server.server.stack] CHIP Controller Stack initialized.
2026-04-26 11:16:55.735 (MainThread) INFO [matter_server.server.server] Matter Server initialized
2026-04-26 11:16:55.735 (MainThread) INFO [matter_server.server.server] Using 'end0' as primary interface (for link-local addresses)
2026-04-26 11:16:55.740 (MainThread) INFO [matter_server.server.server] Starting the Matter Server...
2026-04-26 11:16:55.752 (MainThread) INFO [matter_server.server.helpers.paa_certificates] Fetching the latest PAA root certificates from DCL.
2026-04-26 11:16:58.682 (MainThread) INFO [matter_server.server.helpers.paa_certificates] Fetched 74 PAA root certificates from DCL.
2026-04-26 11:16:58.684 (MainThread) INFO [matter_server.server.helpers.paa_certificates] Fetching the latest PAA root certificates from Git.
2026-04-26 11:16:58.934 (MainThread) INFO [matter_server.server.helpers.paa_certificates] Fetched 2 PAA root certificates from Git.
2026-04-26 11:16:58.941 (MainThread) INFO [chip.FabricAdmin] Allocating new controller with CaIndex: 1, FabricId: 0x0000000000000002, NodeId: 0x000000000001B669, CatTags: []
2026-04-26 11:16:59.619 (Dummy-2) CHIP_ERROR [chip.native.DIS] Failed to advertise records: src/inet/UDPEndPointImplSockets.cpp:417: OS Error 0x02000065: Network is unreachable
2026-04-26 11:16:59.635 (Dummy-2) CHIP_ERROR [chip.native.DL] Long dispatch time: 690 ms, for event type 2
2026-04-26 11:16:59.651 (MainThread) INFO [matter_server.server.vendor_info] Loading vendor info from storage.
2026-04-26 11:16:59.652 (MainThread) INFO [matter_server.server.vendor_info] Loaded 0 vendors from storage.
2026-04-26 11:16:59.653 (MainThread) INFO [matter_server.server.vendor_info] Fetching the latest vendor info from DCL.
2026-04-26 11:16:59.958 (MainThread) INFO [matter_server.server.vendor_info] Fetched 418 vendors from DCL.
2026-04-26 11:16:59.959 (MainThread) INFO [matter_server.server.vendor_info] Saving vendor info to storage.
2026-04-26 11:16:59.970 (MainThread) INFO [matter_server.server.device_controller] Loaded 0 nodes from stored configuration
2026-04-26 11:16:59.983 (MainThread) INFO [matter_server.server.server] Matter Server successfully initialized.

Environment:

  • System: Home Assistant OS on Raspberry Pi (Bare Metal).
  • Network: The Raspberry Pi is connected behind a double-router setup (Home Assistant is in a secondary subnet).
  • Thread: OTBR is active and configured. Thread credentials are successfully synchronized with the Home Assistant Companion App.
  • Hardware: Thread device is located within 1 meter of the Raspberry Pi.
  • Network Status: HA shows a valid link-local fe80:: IPv6 gateway.

Troubleshooting attempted:

  • Successfully synchronized Thread credentials via Companion App.
  • Verified that the OTBR is active and shows no critical errors.
  • Checked physical proximity of the device to the border router.

Suspected cause:
I suspect that the multi-router network structure (double NAT) might be preventing mDNS/Multicast discovery, causing the Network is unreachable error. Additionally, the Matter server seems to be losing its configuration file (chip.json), which forces a reset upon every restart.

Request:
How can I resolve the Network is unreachable issue within a double-router/multi-subnet environment, and how should I address the missing chip.json storage error?