Build1 distinct publisher3 min readUpdated
A developer's 23 marketplace listings held top search slots and drew one user in 89 days. The corpus analysis he ran to explain it was rigorous, defensible, and pointed away from the fault.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A developer publishing small automation tools on the Apify marketplace had 23 listings live by August, ranking well in store search, and after 89 days he had one active user and no revenue [1][2][3]. He then spent eleven days resolving that contradiction in the wrong direction, and the reasoning he used is more instructive than the bug at the end of it [25][4].
The logic was that if ranking was fine and users were zero, the fault had to be downstream [4]. So he went downstream, properly. He pulled 3,655 listings, then went back and pulled 12,834 to check the first pass for sampling bias, found one, and corrected it [5]. He split the corpus by whether the title contained a well-known platform name and got median users of 5 against 2 [6]. He measured the base rate for new listings: 11 percent get a first user within 0 to 3 days of publishing, against 74 percent at 14 to 30 days [7]. His listings were young, so the zeros looked statistically unremarkable [8]. He acted on all of it, renaming five tools and adding output schemas, which moved the platform's own quality score from 74 to 78-79 [9]. Nothing moved [10].
Look at what that age-cohort number did. A roughly sevenfold difference between the 0-3 day and 14-30 day cohorts is a real-looking effect [23]. It also rests on nine listings, of which exactly one had acquired a user, since 11 percent of nine is one [28]. That single observation supplied the alibi: the anomaly was reclassified as normal, and the contradiction stopped demanding an answer. Tripling the corpus to 12,834 improved the statistics about everyone else's listings without testing a single claim about his own [24][5].
The condition he never varied was that he was logged in [13]. Every measurement went out from a browser session, and later a token, belonging to the author of the 23 tools, even though store search is an ordinary public endpoint [13][14]. Sent with no credentials, the ranking was not there; it existed only inside his own session [15]. His summary of the error is the part worth keeping: re-running a measurement under identical conditions reproduces the same bias as faithfully as it reproduces the same truth, so repetition rules out transient noise and nothing else [12].
The cause was an exclusion list. The endpoint takes an `includeUnrunnableActors` parameter, and the documentation defines unrunnable as actors from developers who have not passed KYC, or full-permission actors without a large user base [16]. Two conditions, OR'd, and the second is checkable without a token because every listing exposes its permission level: all 23 came back as LIMITED_PERMISSIONS and public, leaving identity verification, which the platform console stated in words [17][18][19]. Nothing in the code was broken. The tools were live, runnable and genuinely well ranked, inside an index that is not served to logged-out visitors [20].
Note what was never testable. Across 2,047 tool-days there was one user, but no logged-out visitor could reach any of the 23 listings, so the demand question the eleven days were spent on could not have been answered from that data at all [26][2][15].
The detection he ends on costs two unauthenticated calls: query the endpoint with and without the flag, compare, and treat present-with-flag but absent-without as exclusion rather than a ranking problem [21]. Worth running against your own listings before the next round of naming analysis. His own remedy is paperwork [22].
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.
After 89 days the author had 1 active user across all 23 tools and $0 revenue.
Store search looked fine, measured repeatedly from a real browser against the real production endpoint, showing a #1 ranking.
Age-cohort analysis found only 11% (n=9) of new listings get their first user within 0-3 days of publishing, against 74% at 14-30 days.
Every one of those analyses produced a defensible number, and not one of them changed anything.
Re-running a measurement under identical conditions reproduces the same bias just as faithfully as it reproduces the same truth; repetition rules out transient noise and nothing else.
Store search is an ordinary public endpoint: GET https://api.apify.com/v2/store?search=...&limit=100
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 reproducible, but single self-reported account
The core mechanism is documented unusually well for a personal postmortem: the exact public endpoint, the quoted documentation definition of includeUnrunnableActors, the LIMITED_PERMISSIONS check that eliminates one OR branch, the console string naming the other, runnable detection code, and a control comparison in which two non-excluded accounts behave differently. That is checkable by any reader without credentials. It remains one author's report with no vendor confirmation, no independent replication, and no published dataset behind the 3,655/12,834-listing statistics.
Near-zero product uptake; mechanism observed on one account plus two controls
Adoption of the author's listings is quantified and essentially nil: one active user and $0 revenue across 23 listings in 89 days. Adoption of the described condition and detection technique is likewise narrow — five search terms on one excluded account, two control accounts, and no evidence that any other publisher has run the check or that the platform has changed behavior. The corpus scan shows platform-wide activity levels but says nothing about how many accounts are in the withheld state.
Slightly overreaches from one account to the platform
The technical claims are conservative and mostly self-verifying, and the author explicitly adds a control to guard against a diagnostic that always fires. The overreach is in scope: the assertion that the condition 'generalizes to anyone on the platform who is quietly in the same state' rests on one excluded account and two controls, and the marketplace-wide statistics lean on very small cohorts (n=9 for the 11% figure, i.e. a single listing) presented as base rates. Nothing here is inflated about the mechanism itself, only about how much has been established beyond the author's own account.
Contest submission by a seller with a stake in listing visibility
The article opens by identifying itself as a submission for DEV's Summer Bug Smash powered by Sentry, so there is a contest incentive to frame the episode as a dramatic, well-told bug hunt. The author is also a commercial party to the facts: he sells the 23 listings whose discoverability is at issue, names his account and five product terms in the results table, and stands to benefit from attention to those tools. No vendor or sponsor influence over the technical findings is evidenced, and the disclosure of the contest framing is upfront.
Mechanism credible, scope uncertain
Confidence is moderate: the specific causal chain — unfinished KYC, exclusion from the anonymous store index, ranking visible only in the owner's session — is internally consistent, matches quoted platform documentation and console text, and is testable by any reader with no credentials. It is nonetheless one publisher, one author, and no vendor response, with the quantitative corpus claims unverifiable as published. That supports the mechanism far more strongly than any conclusion about how many publishers are affected.
build
Four indexes, none of them covering: the 78-second page and the one index that fixed it1 distinct publisher
build
The fence was fine, the test was green, and the injection still worked1 distinct publisher
build
A Prometheus that had written nothing for hours passed every health check1 distinct publisher
build
A guard that only speaks in exit codes cannot tell you it stopped guarding1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 16, 2026