Symptom
hermes gateway status and hermes gateway install crash when ~/Library/LaunchAgents/ai.hermes.gateway.plist is Apple's binary format. The traceback is UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdc in position 8: invalid continuation byte. The surfaced line is Error: Gateway inaccessible: service_identity_unverified.
Evidence what you'll see
head -c 8on the plist showsbplist00.launchd_plist_is_current()reads it withplist_path.read_text(encoding="utf-8-sig").- The service-identity check parses the same file, so a decode failure is reported as
service_identity_unverified. - The
utf-8toutf-8-sigchange only skips a BOM and does not read binary content.
Why it happens
A binary plist is valid launchd input but is not UTF-8 text. Byte 8 after bplist00 is not a UTF-8 continuation, so a text read raises. The identity error then points at permissions instead of the definition format.
Affected versions
macOS 27.0, Python 3.14, Hermes Agent v0.22.4 (origin/main at 81a55437f3). Also hits the auto-refresh path that checks whether the installed definition is stale. The original report is issue #90606.
Fix steps
0 of 2 done
Your check marks stay in this browser only.
How to check it worked
- After that conversion,
hermes gateway statusreturns withoutUnicodeDecodeError: 'utf-8' codec can't decode byte 0xdc in position 8and withoutservice_identity_unverified.
If it still fails
- Pull request 90603 is still open. A text compare of XML dumps reports every current install as stale, because
plistlib.dumps(..., FMT_XML)reindents with tabs and sorts keys. - The linked issue does not give a released tag that reads binary plists structurally.
PATHinEnvironmentVariablesis expected to differ from the invoking shell.
Sources and credit
Summarized in our own words from these public reports. Credit goes to their authors.
Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change
Hit an error we don't cover? Submit it