Changeset eac3229 in Klonkt for test

Timestamp:
08/14/2026 03:16:07 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
2091647
Parents:
a5515b4
Message:

/cirkel viel om op een media_json die geen array was

boiert.eu gaf 500 op /cirkel terwijl de voorpagina het deed. De catch in
safeJson ving KAPOTTE json af, maar niet geldige json van het verkeerde TYPE:
een remote server stuurde media_json = "[]" -- een STRING met daarin [] -- en
JSON.parse geeft dan netjes een string terug. Een string heeft geen .map:

TypeError: safeJson(...).map is not a function

at coverMedia (src/routes/circle.js:25)

Een enkele post nam zo de hele pagina mee, en beide paden (met en zonder
?append=1) omdat ze dezelfde mapping delen.

DEZE FOUT WAS AL EENS GEVONDEN EN GEREPAREERD, in views/partials/note-body.ejs,
met de reden erbij: "drie posts van een remote server droegen media_json = '[]'
[...] en daarmee lag de hele Krant plat: een vreemde note nam de pagina mee. Wat
er binnenkomt is niet van ons, dus de vorm moet hier afgedwongen worden en niet
aangenomen." Diezelfde les was in circle.js nooit toegepast -- zelfde data,
andere route.

De drie andere plekken die media_json parsen (ActivityPubService 496, 881, 4659)
dwingen de vorm wel af; die zijn nagelopen en blijven zoals ze zijn.

GEVONDEN ZONDER TOEGANG tot die machine. /cirkel?offset=999999 gaf 200, dus een
lege pagina rendert prima en de fout zat in een RIJ. Daarna van buitenaf
uitgebinaird over ?offset=: rij 19 van de eerste 72. Robin leverde daarna de
stacktrace, die precies dat bevestigde.

Vier tests, met de vorm die het omver haalde als eerste. Gecontroleerd dat ze
bijten: reparatie eruit -> 0 groen, 4 rood; terug -> 4 groen.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 added

Note: See TracChangeset for help on using the changeset viewer.