Sites: changing sharing to public fails with AttributeError on access_mode.value
Summary
The Sites sharing dialog and the sites_update_site_access connector both fail when changing a deployed owner-only/custom Site to public, even though the project reports that public is an available access mode and is not disabled by workspace policy.
Steps to reproduce
- Open a deployed Site in the Codex/ChatGPT desktop app.
- Open Share.
- Select Anyone on the Internet.
- Select Publish.
Expected behavior
The access policy changes to public and anonymous visitors can load the Site.
Actual behavior
The UI shows: Unable to save sharing settings.
Calling the Sites connector with the documented payload:
{
project_id: <redacted>,
access_mode: public
}
returns:
AttributeError: 'str' object has no attribute 'value'
The same result occurs when empty allowlists are included. As a diagnostic, passing an enum-shaped object ({value:public}) changes the server exception to:
AttributeError: 'dict' object has no attribute 'value'
This suggests the access-update handler calls .value on the JSON-decoded value after it has already become a primitive string/dict.
A subsequent get_site check shows:
access_mode:customavailable_access_modes:[custom, public]disabled_by:null- access-policy revision unchanged
An unauthenticated request still returns HTTP 401, confirming there was no partial access update.
Environment
- Codex desktop app: 26.707.9981.0
- Sites plugin: 0.1.27
- OS: Microsoft Windows 11 Home, 10.0.26200 (build 26200)
- Reproduced through both the Share dialog and the Sites MCP connector
Project identifiers, account email, API secrets, and Site bypass tokens are intentionally omitted. I can provide a session ID or private project identifier through a non-public support channel if needed.