{"version":"2.1.239","anchor":"untrusted-device-rejections-now-re-enroll-the-device-and-ret","canonical_anchor":"untrusted-device-rejections-now-re-enroll-the-device-and-ret","heading":"Untrusted-device rejections now re-enroll the device and retry","tier":"notice","area":"Sessions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239\/e\/untrusted-device-rejections-now-re-enroll-the-device-and-ret","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239","markdown":"### Untrusted-device rejections now re-enroll the device and retry\n\nRemote session channels now re-enroll and retry when the server says the device isn't trusted.\n\n**What**\n\nBoth halves of the remote session channel now recover on their own when the server refuses a request because the device is not trusted. Uploading session events and opening the live event stream for a remote session each re-enroll a trusted-device token and try again, so events are no longer dropped and the stream no longer surfaces a connection failure.\n\n**Details**\n\n- An event upload rejected for an untrusted device re-enrolls the token and retries the request once, logging `[SessionsV2Client] untrusted_device on POST \u2014 re-enrolled, retrying`.\n- A live event stream refused for the same reason re-enrolls and reconnects, logging `[SessionsV2Client] untrusted_device on SSE connect \u2014 re-enrolled, reconnecting`.\n- This sits alongside the existing recovery on an HTTP 401, where the client refreshes credentials and retries.\n- Event posting was consolidated into a single helper so the untrusted-device and credential-refresh paths share one code path.\n\n**Evidence**\n\n`[SessionsV2Client] untrusted_device on POST \u2014 re-enrolled, retrying`, `[SessionsV2Client] untrusted_device on SSE connect \u2014 re-enrolled, reconnecting`\n\n- Area: Sessions\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}