Skip to content

Data workspace: slug edits silently discarded, with a React render loop in the console #427

Description

@fosferon

What happens

Editing a row's Slug in the Data workspace grid's detail panel appears to succeed — the input accepts the new value and the panel shows it — but the change is never persisted. Reloading shows the old slug, and the database row is unchanged.

At the same time the console fills with:

Maximum update depth exceeded. This can happen when a component calls setState
inside useEffect, but useEffect either doesn't have a dependency array, or one
of the dependencies changes on every render.

The two may or may not share a cause, but they occur together on the same interaction.

Steps

  1. Open Data → Pages (any system table with a slug field should do).
  2. Click a row to open the detail panel.
  3. Change the Slug field, blur or tab out.
  4. Reload — the old slug is back.

Expected

Either the edit persists, or it fails loudly with a visible error.

Workaround

PATCH /admin/api/cms/data/rows/{id} with the full cells object works correctly and persists. The change also survived a subsequent republish without the CRDT reverting it, so the underlying write path is sound — this looks specific to the grid's detail-panel editor.

Environment

  • Instatic at 949ddb2d (v0.0.17 dev), SQLite, bun run dev
  • Encountered on a pages table of 31 rows following a Site Import

Note

Found while migrating a real site onto Instatic. Happy to gather more detail or attempt a fix if you can point me at the intended commit path for that editor.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FPTjUK1YJcwK83zYoANRbb

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions