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

Freegle / Iznik / 5281
70%

Build:
DEFAULT BRANCH: master
Ran 22 Apr 2026 10:11AM UTC
Jobs 4
Files 988
Run time 2min
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

22 Apr 2026 08:16AM UTC coverage: 71.59% (+0.02%) from 71.571%
5281

push

circleci

web-flow
fix(sentry): guard Array.filter against undefined items accessing .error (NUXT3-D45) (#217)

* feat(donations): default target 5000; allow DONATION_TARGET/DONATIONS_EXCLUDE via .env

Wire DONATION_TARGET and DONATIONS_EXCLUDE through docker-compose into the
apiv2 / apiv2-live containers so they can be overridden from .env (.env.example
now has a commented example). Default target bumped 2000 → 5000.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(sentry): guard Array.filter against undefined items accessing .error (NUXT3-D45)

TypeError "Cannot read properties of undefined (reading 'error')" — 47
events / 32 users since 2026-03-30 — fires from an unhandled promise
rejection inside @uppy/core/lib/Uppy.js #runUpload:

    const files = currentUpload.fileIDs.map((fileID) => this.getFile(fileID))
    const successful = files.filter((file) => !file.error)
    const failed = files.filter((file) => file.error)

When a file is removed mid-upload (user clicks "Remove photo" during a
retry cycle) its entry disappears from state.files but its ID is still
in currentUpload.fileIDs. getFile returns undefined for the stale ID,
and the partition filters blow up reading .error.

Stack trace (Sentry event 7375216978):
  {_Uppy#2}.retryAll → runUpload_fn → Array.filter(<anonymous>) → successful

URL: /give/mobile/photos. Breadcrumbs confirm the sequence: multiple
uploads fail with "network error" → user clicks "Remove photo" → retry
tick partitions a fileIDs list that now contains a deleted file.

The sibling patch (NUXT3-D2C) guards @uppy/utils fileFilters for the
same "undefined file in the array" shape; this patch does the same for
the two inline filters in #runUpload.

Fix via patch-package:
  patches/@uppy+core+4.5.3.patch — `file != null` guard in both callbacks
  (both Uppy.js and Uppy.ts so the patch stays consistent across rebuilds).

Adds tests/unit/patches/uppy-core-runUpload.spec.js — reads the patched
Uppy.js and asserts the guarded callback... (continued)

13321 of 20370 branches covered (65.4%)

Branch coverage included in aggregate %.

95949 of 132263 relevant lines covered (72.54%)

21.65 hits per line

Coverage Regressions

Lines Coverage ∆ File
10
48.48
-42.42% iznik-nuxt3/components/FreeglerPhotoGrid.vue
10
83.64
0.71% iznik-nuxt3/components/MobileVisualiseList.vue
1
40.35
-1.75% iznik-batch/app/Services/Mail/Incoming/IncomingArchiveService.php
1
82.49
-0.11% iznik-nuxt3/components/LoginModal.vue
1
81.67
0.0% iznik-server-go/microvolunteering/microvolunteering.go
Jobs
ID Job ID Ran Files Coverage
5281 vitest - 5281 22 Apr 2026 10:11AM UTC 685
64.56
CircleCI Job 5281
5281 laravel - 5281 22 Apr 2026 10:11AM UTC 180
66.65
CircleCI Job 5281
5281 go - 5281 22 Apr 2026 10:11AM UTC 118
80.31
CircleCI Job 5281
5281 playwright - 5281 22 Apr 2026 10:11AM UTC 227
45.01
CircleCI Job 5281
Source Files on build 5281
  • Tree
  • List 988
  • Changed 16
  • Source Changed 0
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • CircleCI Build #5281
  • 5e4ead41 on github
  • Prev Build on master (#5251)
  • Next Build on master (#5311)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc