Build1 distinct publisher3 min readUpdated
A handler that counted parse failures instead of raising them, and a page size that quietly dropped rows, produced two answers close enough to the truth to pass review.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
`except Exception: bad += 1` compiles, runs and reports. What it does not do is tell a claim about the item apart from a claim about the wire. The 277 responses that came back as two words of plain text where JSON was expected [4] were not entries lacking bodies, they were entries the server declined to serve that second, and the handler filed them as the first thing [5]. That is 67 percent of the corpus [1] going into a counter.
The printed table did disclose it. Coverage sat at 32.5 percent in the column next to the answer [6]. Both figures were printed with equal confidence and only one was read. The gap to the real share was 5.4 points [7]. In the author's offline reproducer, against a fake server that refuses in bursts, the gap was smaller: 24.8 percent against a ground truth of 23.5 [9], an error of 1.3 points [4]. An error of that size survives review indefinitely. A sixty point error gets caught before lunch. The expensive failure mode is the one that lands inside the range you were already expecting.
The pagination half is stranger, and no assertion inside the pipeline could reach it. Walking the same endpoint with the same tag in the same minute, the author reports that per_page of 25, 75, 99, 101, 125, 150 and 200 all recovered 422 unique ids, while per_page=100 recovered 383 [11]. It also terminated politely, with an empty page 5 [12]. Those four pages held exactly 400 rows: 383 distinct ids, 17 of them served twice across pages 2 and 3, and 39 never served at all [13]. Anyone reconciling row count against pages times page size arrives at 400 and stops looking. The duplicates are paying for the absences.
That is 9.2 percent of the population gone [2], and not a random 9.2 percent. The 100-row walk reaches back only to 2026-07-14 where the full listing continues to 2026-06-21 [14], so the hole is the oldest 23 days of entries [3]. Any statement about how the challenge developed over time is drawn from the part that was missing.
The author says he found this only after handing the code to Gemini and asking what could still truncate the dataset beneath his completeness check; the first-ranked answer was that the check validates the fetched set against the listing and says nothing about the listing itself [10]. The strict collector he wrote retries unresolved ids, slows down on refusal, and raises rather than returns when anything is still missing. At 0.45s between requests doubling to a 2s ceiling, it resolved all 277 in four rounds: 134, then 77, then 63, then 3 [8]. One id never resolved and turned out to be a genuine 404, an entry deleted between the listing call and the fetch, so resolved-as-404 is permitted alongside parsed [c8b].
Absent versus unavailable is not a fine distinction here. It is the entire content of the number.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Walking the same endpoint, same tag, same minute, page by page until an empty page: per_page=25 gave 17 pages and 422 unique ids; 75 gave 6 pages and 422; 99 gave 5 pages and 422; 100 gave 4 pages and 383; 101 gave 5 pages and 422; 125 gave 4 pages and 422; 150 and 200 gave 3 pages and 422 each. per_page=50 hit non-JSON 'Retry later' at page 10.
The per_page=100 walk announced its end by returning an empty page 5.
The author set out to find one number: what share of the entries in a DEV Summer Bug Smash challenge declare a particular prize category, which would decide whether writing another entry was worth the evening. He got that number wrong three times in one morning, and every wrong answer looked finished.
The first wrong answer was 19: because the listing endpoint returns titles and tags but not bodies, he counted titles containing 'gemini' or 'google', which found 19 of the 66 entries that actually carry the prize-category heading, missing 47 including his own most recent entry.
For the second attempt he fetched all 412 bodies, six at a time, with no delay.
277 of the 412 responses had the body 'Retry later', two words of plain text where JSON was expected.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Specific and self-checkable, but single-observer
The post carries unusually concrete evidence for its size: per-page counts across nine page sizes taken in the same minute, an id-level duplicate/gap breakdown, a real-API recovery sequence, and a standard-library reproducer anyone can run offline. The author also states the limits of his own claim, conceding he has no access to DEV's code and is only measuring observable behaviour. What is missing is corroboration: one author, one account, one machine, one publisher, no platform response, and no root cause, which caps how far the platform-defect reading can be pushed.
No third-party uptake disclosed
The supplied source documents only the author's own runs and published snippets. There is no evidence that any other developer, team or platform has adopted the strict collector, the assert_listing_stable check or the reproducer, no disclosure of usage at scale, and no statement from DEV about changing the endpoint. Inferring uptake from a single contest submission would be guessing.
Slightly ahead of what one observer can establish
The numeric claims are matched to measurements and the author actively deflates his own narrative, explicitly refusing to name a cause inside DEV's code. The modest overstatement sits in the framing rather than the data: a dramatic headline generalises a single-account, single-session probe of one endpoint into a platform defect, and the offline reproducer demonstrates the failure mode by construction rather than proving it holds broadly. Because the caveats are stated in the same piece, the gap stays small.
Contest submission with a prize-category angle
The post opens by declaring itself a submission to DEV's Summer Bug Smash powered by Sentry, and the statistic being chased is literally which prize category entries declare, framed as deciding whether writing another entry is worth the evening. The author also routes his analysis through Gemini, the very keyword family whose prize category he was counting. None of this contradicts the measurements, which are reproducible independently, but it is a disclosed promotional and prize-seeking context that shapes topic selection and framing.
Moderate: strong mechanism, thin corroboration
Confidence is limited chiefly by cluster shape. The internal reasoning is coherent, the code is shown, and the failure modes are mechanically plausible and cheap to re-test, which supports the engineering lessons at high confidence. The platform-behaviour claim and its 9.2-percent, oldest-records-first loss profile depend entirely on one unreplicated session from a single publisher with no vendor acknowledgement, and adoption is entirely unmeasured, so the overall assessment cannot rise past moderate.
build
A GPU SQL Engine Lost to One CPU Thread Because a Dispatcher Constant Was 128x Too Small1 distinct publisher
build
Four indexes, none of them covering: the 78-second page and the one index that fixed it1 distinct publisher
build
Short Build Roots Do Not Fix MAX_PATH: Unreal Cook Failures Are a Windows Setting1 distinct publisher
build
The fence was fine, the test was green, and the injection still worked1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 21, 2026