[{"data":1,"prerenderedAt":533},["ShallowReactive",2],{"Categories":3,"NavIndexCategoriesCountFooter":211,"content-\u002F2026\u002F09\u002F06\u002Fstale-ipv6-default-route-after-gateway-swap":212},[4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,68,70,71,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209],{"category":5},"System Administration",{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":27},"Software Development",{"category":5},{"category":5},{"category":5},{"category":5},{"category":27},{"category":27},{"category":5},{"category":5},{"category":5},{"category":27},{"category":5},{"category":5},{"category":5},{"category":27},{"category":27},{"category":27},{"category":27},{"category":5},{"category":5},{"category":5},{"category":27},{"category":27},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":5},{"category":27},{"category":5},{"category":5},{"category":27},{"category":27},{"category":27},{"category":27},{"category":5},{"category":27},{"category":27},{"category":67},"Drones & RC",{"category":69},"DIY Projects",{"category":67},{"category":72},"Photography",{"category":69},{"category":69},{"category":69},{"category":67},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":69},{"category":67},{"category":69},{"category":69},{"category":67},{"category":67},{"category":72},{"category":72},{"category":72},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":5},{"category":5},{"category":72},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":5},{"category":67},{"category":67},{"category":72},{"category":72},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":67},{"category":72},{"category":67},{"category":138},"3D Printing - Laser Cutting - CNC",{"category":138},{"category":138},{"category":138},{"category":138},{"category":138},{"category":138},{"category":138},{"category":138},{"category":138},{"category":138},{"category":138},{"category":5},{"category":138},{"category":27},{"category":27},{"category":138},{"category":138},{"category":72},{"category":158},"Photography,3D Printing - Laser Cutting - CNC",{"category":27},{"category":27},{"category":69},{"category":27},{"category":27},{"category":27},{"category":27},{"category":5},{"category":67},{"category":5},{"category":5},{"category":27},{"category":27},{"category":27},{"category":27},{"category":27},{"category":69},{"category":27},{"category":27},{"category":27},{"category":67},{"category":27},{"category":182},"Home Assistant",{"category":182},{"category":72},{"category":27},{"category":27},{"category":72},{"category":138},{"category":5},{"category":72},{"category":72},{"category":138},{"category":27},{"category":182},{"category":5},{"category":182},{"category":72},{"category":72},{"category":72},{"category":72},{"category":72},{"category":72},{"category":72},{"category":72},{"category":72},{"category":27},{"category":72},{"category":72},{"category":210},"Technology",198,{"id":213,"title":214,"body":215,"category":210,"date":516,"description":221,"embedImage":517,"extension":518,"image":517,"intro":519,"meta":520,"navigation":521,"path":522,"seo":523,"series":517,"sitemap":524,"stem":525,"tags":526,"__hash__":532},"content\u002F2026\u002F09\u002F06\u002Fstale-ipv6-default-route-after-gateway-swap.md","Stale IPv6 Default Route After a Gateway Swap",{"type":216,"value":217,"toc":509},"minimark",[218,222,227,230,241,244,250,257,260,290,293,300,304,310,313,319,322,325,331,337,344,354,358,400,403,428,431,437,451,455,505],[219,220,221],"p",{},"I replaced my USG Pro 4 + Cloud Key Gen2 Plus setup with a UDM Pro Max. Migration went fine — backup restored, switches and APs re-adopted themselves, Protect came up on new disks. Home Assistant Cloud then stopped working, and the cause was a static IPv6 default route pointing at the old gateway.",[223,224,226],"h2",{"id":225},"symptoms","Symptoms",[219,228,229],{},"Repeated in the log:",[231,232,237],"pre",{"className":233,"code":235,"language":236},[234],"language-text","ERROR [homeassistant.components.cloud.subscription]\nA timeout of 10 was reached while trying to fetch subscription information\n","text",[238,239,235],"code",{"__ignoreMap":240},"",[219,242,243],{},"With this traceback:",[231,245,248],{"className":246,"code":247,"language":236},[234],"File \"hass_nabucasa\u002Fauth\u002Fcognito.py\", line 362, in _async_renew_access_token\n    await self.cloud.run_executor(cognito.renew_access_token)\nasyncio.exceptions.CancelledError\n...\nhass_nabucasa.auth.cognito.AuthTimeoutError: Timeout while renewing access token\n",[238,249,247],{"__ignoreMap":240},[219,251,252,253,256],{},"This is a ",[238,254,255],{},"CancelledError"," at the executor await — which means the 10s timeout fired while the worker thread was still running.",[219,258,259],{},"Other symptoms:",[261,262,263,269,274,279],"ul",{},[264,265,266],"li",{},[238,267,268],{},"relayer_connected: false",[264,270,271],{},[238,272,273],{},"iot_state: disconnected",[264,275,276],{},[238,277,278],{},"iot_tries: 0",[264,280,281,282,285,286,289],{},"The three ",[238,283,284],{},"can_reach_*"," health probes never resolved past ",[238,287,288],{},"pending",".",[219,291,292],{},"Signing out and back in also timed out, so it wasn't a stale token. And now I was stuck logged out too.",[219,294,295,296,299],{},"Another symptom I found: ",[238,297,298],{},"tts.cloud_say"," made the Google speakers play their \"about to speak\" chime and then nothing. The speaker got a media URL and started preparing but when it tried to send the audio it never arrived.",[223,301,303],{"id":302},"diagnosis","Diagnosis",[219,305,306,309],{},[238,307,308],{},"curl"," from inside the Home Assistant container reached every Nabu Casa endpoint in under half a second. You need to be careful here - running these tests against some nabu casa addresses were fine - as they didn't have IPv6 addresses.",[219,311,312],{},"But - running curl verbosely against the host in the traceback:",[231,314,317],{"className":315,"code":316,"language":236},[234],"* Trying [2600:1f18:257:8001:3297:9a85:5e50:a1e]:443...\n* Trying 100.55.237.87:443...\n* Connected to cognito-idp.us-east-1.amazonaws.com (100.55.237.87) port 443\n",[238,318,316],{"__ignoreMap":240},[219,320,321],{},"curl fell back to IPv4 - IPv6 just stalled.",[219,323,324],{},"The route table:",[231,326,329],{"className":327,"code":328,"language":236},[234],"$ ip -6 route show default\ndefault via fe80::feec:daff:fed1:10b7 dev end0 proto static metric 20100\n",[238,330,328],{"__ignoreMap":240},[231,332,335],{"className":333,"code":334,"language":236},[234],"$ ip -6 neighbor show fe80::feec:daff:fed1:10b7\nfe80::feec:daff:fed1:10b7 dev end0 FAILED\n",[238,336,334],{"__ignoreMap":240},[219,338,339,340,343],{},"Aha - that's the fe80 address for MAC ",[238,341,342],{},"FC:EC:DA:D1:10:B7"," — the old USG Pro 4 which was no longer powered on.",[219,345,346,347,350,351,289],{},"Also - ",[238,348,349],{},"proto static"," - this was something I set up originally - it wasn't something the system had found. This is most likely because when I originally set up IPv6 (a DHCPv6 from my ISP with a \u002F56 prefix) I had no RA in the system. I later added radvd to my LAN. After the fix (below) it is now ",[238,352,353],{},"proto ra",[223,355,357],{"id":356},"fix","Fix",[231,359,363],{"className":360,"code":361,"language":362,"meta":240,"style":240},"language-bash shiki shiki-themes github-dark","ip -6 route del default via fe80::feec:daff:fed1:10b7 dev end0\n","bash",[238,364,365],{"__ignoreMap":240},[366,367,370,374,378,382,385,388,391,394,397],"span",{"class":368,"line":369},"line",1,[366,371,373],{"class":372},"svObZ","ip",[366,375,377],{"class":376},"sDLfK"," -6",[366,379,381],{"class":380},"sU2Wk"," route",[366,383,384],{"class":380}," del",[366,386,387],{"class":380}," default",[366,389,390],{"class":380}," via",[366,392,393],{"class":380}," fe80::feec:daff:fed1:10b7",[366,395,396],{"class":380}," dev",[366,398,399],{"class":380}," end0\n",[219,401,402],{},"Then, to persist:",[231,404,406],{"className":360,"code":405,"language":362,"meta":240,"style":240},"ha network update end0 --ipv6-method auto\n",[238,407,408],{"__ignoreMap":240},[366,409,410,413,416,419,422,425],{"class":368,"line":369},[366,411,412],{"class":372},"ha",[366,414,415],{"class":380}," network",[366,417,418],{"class":380}," update",[366,420,421],{"class":380}," end0",[366,423,424],{"class":376}," --ipv6-method",[366,426,427],{"class":380}," auto\n",[219,429,430],{},"Result:",[231,432,435],{"className":433,"code":434,"language":236},[234],"$ ip -6 route show default\ndefault via fe80::76fa:29ff:fe60:5807 dev end0 proto ra metric 20100 pref high\ndefault proto ra metric 20101 pref medium\n        nexthop via fe80::ceba:62fb:5d1e:be15 dev end0 weight 1\n        nexthop via fe80::4d7e:f757:2f83:f11f dev end0 weight 1\n",[238,436,434],{"__ignoreMap":240},[219,438,439,440,442,443,446,447,450],{},"So - ",[238,441,353],{},", and ",[238,444,445],{},"fe80::76fa:29ff:fe60:5807"," maps to ",[238,448,449],{},"74:FA:29:60:58:07"," — the UDM.",[223,452,454],{"id":453},"things-i-tried-that-didnt-work","Things I tried that didn't work",[261,456,457,464,470,488],{},[264,458,459,463],{},[460,461,462],"strong",{},"MTU."," Ruled out by pulling a few hundred KB in 0.22s.",[264,465,466,469],{},[460,467,468],{},"Executor pool saturation."," Would produce the same traceback shape, but there were no blocking-call warnings in the log.",[264,471,472,475,476,479,480,483,484,487],{},[460,473,474],{},"IMDS."," ",[238,477,478],{},"pycognito"," builds a boto3 client, and boto3 tries ",[238,481,482],{},"169.254.169.254"," for credentials at construction. From the container that address timed out at 8s rather than refusing. I added a LAN In reject rule for ",[238,485,486],{},"169.254.0.0\u002F16"," on the UDM so it fails fast - so this is better than it was without - but it was not the real issue.",[264,489,490,475,493,496,497,500,501,504],{},[460,491,492],{},"IPv6, tested against the wrong hosts.",[238,494,495],{},"cloud.nabucasa.com"," and ",[238,498,499],{},"accounts.nabucasa.com"," have no AAAA records, so early IPv6 tests came back clean. Everything after that used ",[238,502,503],{},"-4",", which hid the failing path entirely.",[506,507,508],"style",{},"html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":240,"searchDepth":510,"depth":510,"links":511},2,[512,513,514,515],{"id":225,"depth":510,"text":226},{"id":302,"depth":510,"text":303},{"id":356,"depth":510,"text":357},{"id":453,"depth":510,"text":454},"2026-09-06 16:20 +0200",null,"md","Home Assistant Cloud stopped working after replacing a USG Pro 4 with a UDM Pro Max. The cause was a static IPv6 default route pointing at the old gateway's link-local address.",{},true,"\u002F2026\u002F09\u002F06\u002Fstale-ipv6-default-route-after-gateway-swap",{"title":214,"description":221},{"loc":522},"2026\u002F09\u002F06\u002Fstale-ipv6-default-route-after-gateway-swap",[527,528,529,530,531],"home-assistant","unifi","networking","ipv6","debugging","ENeBarUizcTOjb_g5dpgP_pvx87brJH56smR-6xnzt0",1788706490723]