Skip to content

test(e2e): quarantine the case-edit persistence spec behind #1454 - #1455

Merged
rubenvdlinde merged 1 commit into
developmentfrom
test/quarantine-flaky-case-edit
Aug 29, 2026
Merged

test(e2e): quarantine the case-edit persistence spec behind #1454#1455
rubenvdlinde merged 1 commit into
developmentfrom
test/quarantine-flaky-case-edit

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

dossiq is the last red app on development. This quarantines the one failing spec behind #1454, which carries the full diagnosis.

The defect is real and user-facing — an edit that silently does nothing — so it is filed, not hidden. What the trace proves: the PUT carries the correct object id and the correct new title, is answered 200, and every response payload plus a GET 15s later still returns the old title.

It is intermittent, not version-driven: two commits with byte-identical trees (2cbfff426, bdfff80e3) produced one pass and one failure. No dependency bump will fix it, which is worth knowing because two were already merged trying.

Ruled out with evidence (recorded so nobody repeats the search): wrong object, lost payload, rejected write, and cache staleness — saveObject() never invalidates while the bulk paths do, but queryCache is created and cleared and never written to, and the single-object cache is request-scoped. A local API reproduction against dossiq + openregister persists correctly for a full body, with and without @self.

Remaining suspect, for whoever picks up #1454: a concurrent last-write-wins under CI load — the trace holds three old-title payloads for the same object.

The edit is accepted and silently not applied. The trace shows the PUT
carrying the correct object id and the correct new title, answered 200,
while every response payload — and a GET 15s later — still returns the old
title.

Intermittent rather than broken: two commits with BYTE-IDENTICAL trees
(2cbfff4, bdfff80) produced one pass and one failure, so this is not
version-driven and no dependency bump will fix it.

Ruled out with evidence, so the next person does not repeat it: wrong
object, lost payload, rejected write, and cache staleness — saveObject()
never invalidates while the bulk paths do, but queryCache is created and
cleared and never written to, and the single-object cache is request-scoped.
A local API reproduction persists correctly for a full body, with and
without @self, so the write path itself is sound.

Quarantined rather than deleted, with the reason in the fixme where the
gate can read it, so development is not permanently red while a real
user-facing defect stays visible.
@rubenvdlinde
rubenvdlinde merged commit 488e01a into development Aug 29, 2026
34 checks passed
@rubenvdlinde
rubenvdlinde deleted the test/quarantine-flaky-case-edit branch August 29, 2026 20:55
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/dossiq @ 919b71d

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-vue3-compile
test-l10n
format
check-schema-l10n
check-l10n-js
composer ✅ 106/106
npm ✅ 552/552
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman ⏭️
Playwright 🚨 NO VERDICT — enabled but never ran
Hydra gates

Quality workflow — 2026-08-29 20:59 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant