OSS Labs

OSS-backed debugging labs across ecosystems.

Each lab is reverted from a real public bug-fix commit. Filter by language, stack, topic, difficulty, and readiness — drafts stay unplayable until a human review marks them ready.

OSS Labs are training exercises derived from public open-source bug-fix history. Completing a lab is not an upstream contribution or merged PR. Buglyst is not affiliated with these projects.
4Playable nowReviewed & marked ready
22In packagingDrafts under review
4LanguagesJS · Python · Java · C++
28Source reposReal public projects
JavaScript / TypeScript23 labsPython1 labJava1 labC++1 lab
search
No filters applied
Showing 26 of 26 OSS labs

Repeated trailing slashes in base URL

Double slash between host and path

axios/axios

JavaScript / TypeScript

EasyPlayable
Open labchevron_right

app.render rejects null and undefined options values

Null or undefined options prevents rendered output delivery

expressjs/express

JavaScript / TypeScript

EasyPlayable
Open labchevron_right

HTTP method casing mishandled for non-standard verbs

Non-standard method casing altered

node-fetch/node-fetch

JavaScript / TypeScript

EasyPlayable
Open labchevron_right

Zero-value entries-read argument omitted from XGROUP tokens

ENTRIESREAD 0 drops trailing tokens

redis/node-redis

JavaScript / TypeScript

MediumPlayable
Open labchevron_right

Clear RN FormData content type

Evidence-grounded symptom pending

axios/axios

JavaScript / TypeScript

EasyReady-check eligible
View detailschevron_right

Preserve symbol keys in merged request data

Evidence-grounded symptom pending

axios/axios

JavaScript / TypeScript

MediumReady-check eligible
View detailschevron_right

Duplicate closeIdleConnections invocation on shutdown for built-in servers

Native server closeIdleConnections count exceeds one

fastify/fastify

JavaScript / TypeScript

EasyReady-check eligible
View detailschevron_right

The Missing RETURNING

Empty INSERT with RETURNING returns no data

knex/knex

JavaScript / TypeScript

EasyReady-check eligible
View detailschevron_right

Duplicate elements fool recursive comparison

Visible upstream regression test fails on the parent snapshot

assertj/assertj

Java

MediumNeeds packaging
View detailschevron_right

Preserve TLS options for proxy tunnels

Evidence-grounded symptom pending

axios/axios

JavaScript / TypeScript

EasyNeeds packaging
View detailschevron_right

Basic auth dropped on same-origin redirects

Same-origin redirect strips Authorization header

axios/axios

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

enhance req.acceptsCharsets method (#6088)

Visible upstream regression test fails on the parent snapshot

expressjs/express

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

The Bare Redirect

Visible upstream regression test fails on the parent snapshot

expressjs/express

JavaScript / TypeScript

EasyNeeds packaging
View detailschevron_right

Fastify trusts forwarded host and protocol without a socket guard

Visible upstream regression test fails on the parent snapshot

fastify/fastify

JavaScript / TypeScript

EasyNeeds packaging
View detailschevron_right

validate invalid route logLevel at registration (#6523)

Visible upstream regression test fails on the parent snapshot

fastify/fastify

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

revert exports map added in #6227 (#6422)

Visible upstream regression test fails on the parent snapshot

knex/knex

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

sqlite DDL operations failing inside transactions #6402 (#6408)

Visible upstream regression test fails on the parent snapshot

knex/knex

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

clone config in client constructor (#5633)

Visible upstream regression test fails on the parent snapshot

knex/knex

JavaScript / TypeScript

EasyNeeds packaging
View detailschevron_right

Recursive JSON merge leaves stale parent pointers

Visible upstream regression test fails on the parent snapshot

nlohmann/json

C++

MediumNeeds packaging
View detailschevron_right

The Ghost Rewrite

Location header is rewritten from relative to absolute during manual redirect

node-fetch/node-fetch

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

feat: add static Response.json (#1670)

Visible upstream regression test fails on the parent snapshot

node-fetch/node-fetch

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

BOM byte not stripped from decoded text and JSON bodies

Leading BOM leaks into text() and breaks json()

node-fetch/node-fetch

JavaScript / TypeScript

EasyNeeds packaging
View detailschevron_right

(Headers): don't forward secure headers on protocol change (#1599)

Visible upstream regression test fails on the parent snapshot

node-fetch/node-fetch

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

Accept-Charset deprecation bypasses compatibility warnings

Visible upstream regression test fails on the parent snapshot

pallets/werkzeug

Python

MediumNeeds packaging
View detailschevron_right

Use mapped address when sentinel failover moved pubsub connections

Evidence-grounded symptom pending

redis/node-redis

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

Record client connection errors

Evidence-grounded symptom pending

redis/node-redis

JavaScript / TypeScript

MediumNeeds packaging
View detailschevron_right

infoDraft labs are not playable. Status reflects honest packaging + review state, never a fake availability.

Repos we mine

Source repos in the mining pipeline. Packs open as drafts clear packaging and human review.

28 repos
CLI / Local Mode · Coming soonPlanned

Export OSS Labs to your own machine.

A planned local mode will let advanced users export a lab and run it in their own editor and terminal — keeping the guided browser experience as the default. Not yet available; this is a roadmap teaser, not a shipped feature.

No download yet