• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

decentraland / lamb2 / 30681536977
63%
main: 63%

Build:
Build:
LAST BUILD BRANCH: 4.13.1
DEFAULT BRANCH: main
Ran 01 Aug 2026 03:12AM UTC
Jobs 1
Files 82
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Aug 2026 03:11AM UTC coverage: 63.052% (+0.9%) from 62.172%
30681536977

push

github

web-flow
fix: batch entities requests to stay under the content server pointers limit (#471)

* fix: batch entities requests to stay under the content server pointers limit

The content server validates `POST /entities/active` against a schema that caps
`pointers` at 1000 items and answers 400 when it is exceeded. `_fetchEntities`
asked for every non-cached urn in a single request, so any wallet owning more
than 1000 items got a 400 from content that surfaced as a 500 on
`GET /explorer/:address/wearables`, leaving the backpack empty.

Requests are now split into batches of 500. This also covers
`fetchCollectionEntities`, which has the same latent problem for linked
wearable collections with more than 1000 entities.

Entities missing a metadata id are now skipped and logged instead of throwing,
which was another way the same call could turn into a 500.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: batch definitions too and bound the pointer request fan-out

extract the batching into a shared helper so wearable and emote definitions
stay under the content server pointers limit as well. definitions are
resolved for every owned item at once, so /collections/wearables-by-owner/
:owner?includeDefinitions answered 500 for the same wallets as
/explorer/:address/wearables.

bound the concurrency of the batched requests. the 1000-pointer cap exists
to keep the underlying query cheap on a public endpoint, so a wallet with
many items must not fan one request out into an unbounded burst of them.

a failing batch now costs its own entities instead of the whole response,
since callers already treat an unresolved pointer as a miss.

raise the batch size to 900 and export it, so the tests assert against the
constant instead of duplicating it.

the profiles path is left unbatched on purpose: its handler already rejects
more ids than the content server accepts, and batching it would turn a hard
failure into silently partial profiles. the cap now doc... (continued)

468 of 979 branches covered (47.8%)

Branch coverage included in aggregate %.

48 of 50 new or added lines in 3 files covered. (96.0%)

21 existing lines in 3 files now uncovered.

1660 of 2396 relevant lines covered (69.28%)

77.23 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
86.67
-13.33% src/adapters/definitions-fetcher.ts

Coverage Regressions

Lines Coverage ∆ File
17
65.09
19.73% src/adapters/entities-fetcher.ts
2
86.67
-13.33% src/adapters/definitions-fetcher.ts
2
87.18
0.0% src/controllers/handlers/profiles-handler.ts
Jobs
ID Job ID Ran Files Coverage
1 30681536977.1 01 Aug 2026 03:12AM UTC 82
63.05
GitHub Action Run
Source Files on build 30681536977
  • Tree
  • List 82
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30681536977
  • 70c70924 on github
  • Prev Build on main (#28469095931)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc