Sites: changing sharing to public fails with AttributeError on access_mode.value

Open 💬 0 comments Opened Jul 15, 2026 by matthewsorenson

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

  1. Open a deployed Site in the Codex/ChatGPT desktop app.
  2. Open Share.
  3. Select Anyone on the Internet.
  4. 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: custom
  • available_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.

View original on GitHub ↗