{"repo":"NousResearch/hermes-agent","public_id":"40069","display_label":"Desktop OAuth net.request header errors and fixes","summary":"These items cluster around ERR_INVALID_ARGUMENT errors on Electron's net.request caused by manually setting restricted headers (notably Content-Length) in the desktop OAuth and session request paths, along with related header-handling edge cases and regression tests.","subsystem":"apps/desktop","counts":{"members":8,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":3,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":40628},"resolution":{"state":"partially_resolved","by":"pr-40628"},"freshness":{"state":"verified","last_verified_at":"2026-07-06T18:12:16+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.20428571428571432},"fix_edges":[{"issue_number":40069,"pr_number":40628,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":40069,"title":"Desktop (remote gateway, OAuth mode): saving settings fails with net::ERR_INVALID_ARGUMENT — manual Content-Length on Electron net.request","url":null,"state":"closed"},{"kind":"issue","number":40215,"title":"[Desktop]: error invoking remote method 'hermes:api': Error: net::ERR_INVALID_ARGUMENT","url":null,"state":"closed"},{"kind":"issue","number":63707,"title":"Desktop remote gateway (password auth): session mutations fail with net::ERR_INVALID_ARGUMENT","url":null,"state":"closed"},{"kind":"pr","number":40115,"title":"fix(desktop): let oauth net requests set length","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#40242","number":40242}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":40118,"title":"fix(desktop): drop manual Content-Length on Electron net.request OAuth path","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#40115","number":40115},{"kind":"pr","value":"#40115","number":40115},{"kind":"pr","value":"#40115","number":40115}],"category":"uncategorized","implication":"needs_llm"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":40242,"title":"test(desktop): cover oauth session request headers","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#40628","number":40628}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":40628,"title":"test(desktop): regression-guard fetchJsonViaOauthSession headers (#40069)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/oauth-session-request.test.cjs","apps/desktop/package.json"]},{"kind":"pr","number":64059,"title":"fix(desktop): fetchJson omits X-Hermes-Session-Token when token is nullish (#63707)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#71783","number":71783}],"category":"uncategorized","implication":"needs_llm"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}