200 backend debugging scenarios
Build a repeatable approach to diagnosis, immediate containment and prevention. Each scenario has three decisions, explanations and a debrief. Start with the 18 foundation incidents, then explore 182 focused exercises across the topic library.
Use search and filters in the practice lab, or browse topic previews below. Paid scenario links open the account page until access is verified.
Spring
The database is quiet. The pool is full. · Free
Checkout latency spikes while database CPU stays low. Find what is holding the connections.
The rollback that never happened. · Free
A transaction annotation is present, yet a failed import leaves rows behind.
The exception was thrown. The data committed.
A checked export failure does not trigger the rollback the developer expected.
The inner transaction commits alone
Outer order transaction rolls back. Choose a diagnosis, a containment step and a prevention strategy.
The swallowed exception
Service catches a repository exception and returns success. Choose a diagnosis, a containment step and a prevention strategy.
The worker thread has no transaction
A transactional service submits a JDBC write to an executor. Choose a diagnosis, a containment step and a prevention strategy.
The after-commit email disappears
Database order commits. Choose a diagnosis, a containment step and a prevention strategy.
The validation annotation does nothing
Controller creates a service using new. Choose a diagnosis, a containment step and a prevention strategy.
The async method blocks the caller
Annotated async method is called with this.send(). Choose a diagnosis, a containment step and a prevention strategy.
The request identity leaks
A pooled thread handles tenant A then B. Choose a diagnosis, a containment step and a prevention strategy.
The wrong transaction manager
A reporting write commits although the annotated business transaction rolls back. Choose a diagnosis, a containment step and a prevention strategy.
The scheduled job runs twice
Two application replicas both run the same local scheduled settlement task at midnight. Choose a diagnosis, a containment step and a prevention strategy.
The read-only hint becomes a policy
A supposedly read-only service accepts writes in one deployed database configuration. Choose a diagnosis, a containment step and a prevention strategy.
The retry repeats inside a doomed transaction
Three retry attempts reuse one rollback-only transaction. Choose a diagnosis, a containment step and a prevention strategy.
The bean uses yesterday's config
A secret refresh succeeds centrally. Choose a diagnosis, a containment step and a prevention strategy.
The response ends before the job is durable
An endpoint returns accepted then queues a task in an in-memory executor. Choose a diagnosis, a containment step and a prevention strategy.
Messaging
One event. Two shipments. · Free
A consumer restart repeats a side effect even though the producer is idempotent.
The order exists. The event does not.
A crash lands between a database commit and a broker publish.
The poison event blocks the partition
Every restart retries the same invalid event. Choose a diagnosis, a containment step and a prevention strategy.
The slow consumer keeps rebalancing
Processing takes longer than the configured poll interval. Choose a diagnosis, a containment step and a prevention strategy.
The new partition count reorders one customer
Events for one key move under a changed partition mapping while old events remain in previous partitions. Choose a diagnosis, a containment step and a prevention strategy.
The tombstone becomes a crash
A compacted topic delivers a null value. Choose a diagnosis, a containment step and a prevention strategy.
The schema rename breaks old consumers
Producer renames a required field. Choose a diagnosis, a containment step and a prevention strategy.
The retry topic changes business order
A failed update is delayed in a retry topic. Choose a diagnosis, a containment step and a prevention strategy.
The acknowledgment precedes durability
Handler acknowledges delivery then crashes before committing its database mutation. Choose a diagnosis, a containment step and a prevention strategy.
The replay sends old emails again
Historical events are replayed for a projection rebuild. Choose a diagnosis, a containment step and a prevention strategy.
The batch commits past a failed item
One event fails. Choose a diagnosis, a containment step and a prevention strategy.
The message exceeds the receiver limit
Producer accepts a payload under its configured limit. Choose a diagnosis, a containment step and a prevention strategy.
The outbox cleaner runs too soon
A cleanup job deletes unsent outbox rows by creation time. Choose a diagnosis, a containment step and a prevention strategy.
The consumer trusts producer order as time
An event with an older business version arrives later and replaces a newer projection. Choose a diagnosis, a containment step and a prevention strategy.
The retry has no expiration
A deleted customer event is retried forever because every not-found response is considered temporary. Choose a diagnosis, a containment step and a prevention strategy.
Persistence
The endpoint that runs 101 queries.
One list request fans out into a query per order.
Two orders buy the last item.
Two requests read stock = 1 and both claim success.
Transfers freeze in opposite directions.
Two money-transfer transactions lock the same rows in a different order.
A 20-row page loads the entire result.
Collection fetching undermines a query limit and creates a memory spike.
Page two repeats page one.
Offset pagination shifts when new records arrive between requests.
The lazy field fails after return
Service closes persistence context. Choose a diagnosis, a containment step and a prevention strategy.
The bulk update leaves old objects
Bulk SQL updates status to shipped. Choose a diagnosis, a containment step and a prevention strategy.
The deleted child stays in the database
Parent collection drops a child. Choose a diagnosis, a containment step and a prevention strategy.
The detached entity overwrites a newer value
An old detached object is merged without version checking after another request changed the row. Choose a diagnosis, a containment step and a prevention strategy.
The entity is equal until persisted
An entity enters a HashSet before ID assignment. Choose a diagnosis, a containment step and a prevention strategy.
The batch insert flushes every row
Loop calls saveAndFlush per item. Choose a diagnosis, a containment step and a prevention strategy.
The join multiplies the report
Joining two independent one-to-many collections creates many row combinations and inflated aggregate totals. Choose a diagnosis, a containment step and a prevention strategy.
The missing tenant predicate
A repository method filters invoice ID but omits tenant. Choose a diagnosis, a containment step and a prevention strategy.
The giant persistence context
An import retains every managed entity across a million-row transaction. Choose a diagnosis, a containment step and a prevention strategy.
The enum changes yesterday's records
Stored ordinal 1 meant approved. Choose a diagnosis, a containment step and a prevention strategy.
The implicit flush breaks a read
A SELECT triggers flush of an earlier invalid pending entity. Choose a diagnosis, a containment step and a prevention strategy.
The identifier generator serializes inserts
All writers contend on one ID allocation row. Choose a diagnosis, a containment step and a prevention strategy.
The collection replacement deletes too much
A partial request replaces the whole aggregate collection. Choose a diagnosis, a containment step and a prevention strategy.
Distributed systems
A small outage becomes a traffic storm.
Retries at three layers multiply load on a struggling dependency.
The cache expires. The database melts.
Hundreds of requests try to rebuild the same popular cache entry.
The double-click becomes a double charge.
Two identical requests pass a non-atomic idempotency check.
A cache hit returns another tenant’s data.
A cache key omits tenant identity and crosses an authorization boundary.
The leader writes after losing its lease
Old leader pauses, loses its lease, then resumes and writes over the new leader's result. Choose a diagnosis, a containment step and a prevention strategy.
The retry multiplies across services
Three service layers each retry three times. Choose a diagnosis, a containment step and a prevention strategy.
The breaker retries all probes at once
An open circuit resets and every waiting request probes the failing dependency simultaneously. Choose a diagnosis, a containment step and a prevention strategy.
The saga compensation runs twice
Timeout recovery repeats an inventory release. Choose a diagnosis, a containment step and a prevention strategy.
The clocks reverse event history
Two hosts disagree by seconds. Choose a diagnosis, a containment step and a prevention strategy.
The quorum math assumes independent failures
Replicas counted toward quorum share one physical failure domain. Choose a diagnosis, a containment step and a prevention strategy.
The fallback invents a successful payment
Payment provider times out. Choose a diagnosis, a containment step and a prevention strategy.
The fan-out has one slow tail
A page waits for twenty optional services. Choose a diagnosis, a containment step and a prevention strategy.
The distributed lock guards only the request
A request releases its lock before its asynchronous write completes. Choose a diagnosis, a containment step and a prevention strategy.
The reconciliation job cannot resume
A repair scans millions of records. Choose a diagnosis, a containment step and a prevention strategy.
The inventory reserve never expires
Checkout abandons a reservation. Choose a diagnosis, a containment step and a prevention strategy.
The regional failover loses acknowledged work
Application acknowledges a write before asynchronous cross-region replication. Choose a diagnosis, a containment step and a prevention strategy.
The dependency cache hides a revoked endpoint
Service discovery refresh fails. Choose a diagnosis, a containment step and a prevention strategy.
Java & concurrency
The heap never comes back down.
A customer lookup cache grows with every unique key and never evicts.
Async work has nowhere to run.
Blocking remote calls occupy the executor used by unrelated asynchronous work.
The map forgets a key it still contains.
A key changes after insertion and lookups become unreliable.
More threads. The same throughput.
Virtual threads increase waiting capacity, but the database is still the bottleneck.
The counter loses increments
Eight threads update count++ on a shared int. Choose a diagnosis, a containment step and a prevention strategy.
The volatile balance still races
Balance is volatile. Choose a diagnosis, a containment step and a prevention strategy.
The collection changes during iteration
One thread iterates an ArrayList while another removes entries. Choose a diagnosis, a containment step and a prevention strategy.
The canceled future keeps charging
A future is canceled after timeout. Choose a diagnosis, a containment step and a prevention strategy.
The permit is never returned
Semaphore availability decreases after exceptional exits. Choose a diagnosis, a containment step and a prevention strategy.
The lock protects different objects
Each call creates a new lock object before updating the same shared map. Choose a diagnosis, a containment step and a prevention strategy.
The comparator breaks the sort
Comparator returns inconsistent ordering for equal timestamps. Choose a diagnosis, a containment step and a prevention strategy.
The interrupt is swallowed
Shutdown interrupts a worker. Choose a diagnosis, a containment step and a prevention strategy.
The compute function calls itself
Cache loader recursively invokes computeIfAbsent for the same key. Choose a diagnosis, a containment step and a prevention strategy.
The timeout only covers the first future
One stage has a timeout. Choose a diagnosis, a containment step and a prevention strategy.
The producer outruns the queue
Producers submit to an unbounded queue. Choose a diagnosis, a containment step and a prevention strategy.
The latch never reaches zero
One of five tasks throws before countDown. Choose a diagnosis, a containment step and a prevention strategy.
The shared formatter corrupts timestamps
Parallel requests share a mutable legacy date formatter. Choose a diagnosis, a containment step and a prevention strategy.
PostgreSQL
The migration waits behind a reader
ALTER TABLE waits. Choose a diagnosis, a containment step and a prevention strategy.
The index exists but the scan stays huge
Query applies lower(email). Choose a diagnosis, a containment step and a prevention strategy.
The replica misses a fresh order
Write succeeds on primary. Choose a diagnosis, a containment step and a prevention strategy.
The prepared query gets slower for one tenant
Small tenants are fast. Choose a diagnosis, a containment step and a prevention strategy.
The vacuum cannot reclaim old rows
Dead tuples accumulate. Choose a diagnosis, a containment step and a prevention strategy.
The sequence jumps after rollback
Failed inserts consume generated IDs. Choose a diagnosis, a containment step and a prevention strategy.
The upsert replaces fresher data
An older retry performs ON CONFLICT UPDATE and overwrites a newer source version. Choose a diagnosis, a containment step and a prevention strategy.
The unique check races
Two requests both find no matching row. Choose a diagnosis, a containment step and a prevention strategy.
The search with offset slows each page
Pagination requests increasingly large OFFSET values. Choose a diagnosis, a containment step and a prevention strategy.
The idle transaction blocks checkout
A session is idle in transaction while holding a row lock. Choose a diagnosis, a containment step and a prevention strategy.
The lock-free assumption fails at repeatable read
Two concurrent writers see an invariant satisfied and update different rows. Choose a diagnosis, a containment step and a prevention strategy.
The sort spills to disk
Query latency rises with temp-file bytes. Choose a diagnosis, a containment step and a prevention strategy.
The JSON predicate ignores the intended index
A report extracts a JSON text field and casts it. Choose a diagnosis, a containment step and a prevention strategy.
Caching
The stale writer wins the cache
Request A reads version 4 slowly. Choose a diagnosis, a containment step and a prevention strategy.
The missing key becomes permanent
A not-found result is cached indefinitely. Choose a diagnosis, a containment step and a prevention strategy.
The refresh owner dies
A distributed refresh lock has no expiry. Choose a diagnosis, a containment step and a prevention strategy.
The cache deletes someone else's lock
Owner A's lease expires. Choose a diagnosis, a containment step and a prevention strategy.
The serializer upgrade breaks cache hits
New code expects one cached object shape. Choose a diagnosis, a containment step and a prevention strategy.
The default TTL never gets set
Writer sets a key successfully, then crashes before a separate expiration command. Choose a diagnosis, a containment step and a prevention strategy.
The cache outage floods the database
Cache connections fail. Choose a diagnosis, a containment step and a prevention strategy.
The cache hit changes the language
First English request fills a cache keyed only by article ID. Choose a diagnosis, a containment step and a prevention strategy.
The eviction removes security state
Session revocation markers share an evicting cache with disposable page fragments. Choose a diagnosis, a containment step and a prevention strategy.
The hot key overloads one shard
Most requests target one celebrity profile. Choose a diagnosis, a containment step and a prevention strategy.
The increment loses its expiry
A rate-limit key is replaced by a generic SET. Choose a diagnosis, a containment step and a prevention strategy.
The compressed object is larger than the limit
Cache accepts small objects. Choose a diagnosis, a containment step and a prevention strategy.
The invalidation reaches only one process
Node A removes its local entry after a write. Choose a diagnosis, a containment step and a prevention strategy.
HTTP & APIs
The private response is shared
A CDN caches an account page under the URL only. Choose a diagnosis, a containment step and a prevention strategy.
The ETag ignores the representation
English and French responses share an ETag derived only from record ID. Choose a diagnosis, a containment step and a prevention strategy.
The retry repeats a POST effect
Client times out after order creation and blindly repeats POST. Choose a diagnosis, a containment step and a prevention strategy.
The proxy discards the prefix
Service generates redirects without its external path prefix. Choose a diagnosis, a containment step and a prevention strategy.
The request body is consumed twice
Logging middleware reads the entire request stream. Choose a diagnosis, a containment step and a prevention strategy.
The bulk endpoint has no size bound
One authenticated request submits millions of items. Choose a diagnosis, a containment step and a prevention strategy.
The timeout exceeds the caller's deadline
Backend waits 60 seconds for a dependency. Choose a diagnosis, a containment step and a prevention strategy.
The cursor accepts a different filter
A continuation token from customer A's search is reused with customer B's filters. Choose a diagnosis, a containment step and a prevention strategy.
The PATCH clears omitted fields
A partial JSON update is mapped onto a full object. Choose a diagnosis, a containment step and a prevention strategy.
The success response hides partial failure
Bulk import returns 200 with a single success flag although several item writes failed. Choose a diagnosis, a containment step and a prevention strategy.
The content type is guessed
Endpoint receives form data but attempts JSON parsing. Choose a diagnosis, a containment step and a prevention strategy.
The range download ignores object versions
A client resumes part of a file after the object changes. Choose a diagnosis, a containment step and a prevention strategy.
The URL parser disagrees with validation
Validation checks a hostname string differently from the outbound client. Choose a diagnosis, a containment step and a prevention strategy.
Security
The object ID changes the account
Signed-in user changes an invoice ID and receives another user's invoice. Choose a diagnosis, a containment step and a prevention strategy.
The UI-only admin button
Non-admin hides the button in the browser but can call the same mutation endpoint directly. Choose a diagnosis, a containment step and a prevention strategy.
The JWT belongs to another audience
A valid signed token issued for a different service is accepted by the payment API. Choose a diagnosis, a containment step and a prevention strategy.
The role change leaves access open
User is removed from an admin role. Choose a diagnosis, a containment step and a prevention strategy.
The export job trusts its submitter field
A queued export accepts tenantId from its message without binding it to the authorized job owner. Choose a diagnosis, a containment step and a prevention strategy.
The password reset token is reusable
A reset link succeeds twice after the first password change. Choose a diagnosis, a containment step and a prevention strategy.
The redirect accepts any return URL
Sign-in return target accepts an arbitrary external URL provided by the request. Choose a diagnosis, a containment step and a prevention strategy.
The log contains bearer tokens
Access logs record all request headers. Choose a diagnosis, a containment step and a prevention strategy.
The upload filename escapes its folder
Server joins a user filename to a storage directory without checking the resolved destination. Choose a diagnosis, a containment step and a prevention strategy.
The signed webhook parses first
Handler parses and reserializes JSON before checking the signature. Choose a diagnosis, a containment step and a prevention strategy.
The refund screen trusts a price field
Client sends a purchase amount and server uses it as the authoritative refund basis. Choose a diagnosis, a containment step and a prevention strategy.
The permission check races deletion
Authorization checks a resource, then an unrelated lookup resolves a reused identifier to a new owner. Choose a diagnosis, a containment step and a prevention strategy.
The service accepts an empty security config
Missing issuer configuration falls back to decoding tokens without signature verification. Choose a diagnosis, a containment step and a prevention strategy.
Observability
The average hides the slow customers
Mean latency stays low while a small group experiences multi-second responses. Choose a diagnosis, a containment step and a prevention strategy.
The dashboard mixes seconds and milliseconds
New exporter reports seconds. Choose a diagnosis, a containment step and a prevention strategy.
The error rate uses the wrong denominator
Panel divides failing requests by successful requests rather than total completed requests. Choose a diagnosis, a containment step and a prevention strategy.
The trace ends at the queue
HTTP spans stop before publication. Choose a diagnosis, a containment step and a prevention strategy.
The request ID becomes a metric label
Each request adds a unique ID label. Choose a diagnosis, a containment step and a prevention strategy.
The alert never fires during no traffic
Query returns no series when the service stops emitting. Choose a diagnosis, a containment step and a prevention strategy.
The logs cannot establish ordering
Concurrent services log local timestamps without trace or operation identity. Choose a diagnosis, a containment step and a prevention strategy.
The sampler drops every rare failure
Sampling happens before the eventual error is known. Choose a diagnosis, a containment step and a prevention strategy.
The latency excludes queued time
Timer starts when a worker begins. Choose a diagnosis, a containment step and a prevention strategy.
The deployment label never changes
New pods inherit an old release label. Choose a diagnosis, a containment step and a prevention strategy.
The counter drops after restart
A dashboard subtracts raw counter values across restarts and reports negative throughput. Choose a diagnosis, a containment step and a prevention strategy.
The health check says only process alive
A service returns healthy while its required database connection is unusable. Choose a diagnosis, a containment step and a prevention strategy.
The successful HTTP status hides failed jobs
API returns accepted. Choose a diagnosis, a containment step and a prevention strategy.
Containers & operations
The rollout kills in-flight requests
Pod receives termination. Choose a diagnosis, a containment step and a prevention strategy.
The liveness probe causes a restart loop
A temporary database outage makes liveness fail. Choose a diagnosis, a containment step and a prevention strategy.
The process exits below its heap limit
Container is OOM-killed while Java heap usage is below Xmx. Choose a diagnosis, a containment step and a prevention strategy.
The CPU limit creates latency spikes
CPU throttling rises during bursts although node-wide CPU looks available. Choose a diagnosis, a containment step and a prevention strategy.
The readiness check warms too late
Pod enters service before required caches or migrations are ready. Choose a diagnosis, a containment step and a prevention strategy.
The temporary disk fills the node
Application writes uploads to ephemeral storage without cleanup. Choose a diagnosis, a containment step and a prevention strategy.
The secret changes but the process does not
Mounted secret rotates. Choose a diagnosis, a containment step and a prevention strategy.
The autoscaler ignores queue age
CPU is low while workers wait on I/O. Choose a diagnosis, a containment step and a prevention strategy.
The local file disappears on reschedule
A user upload is stored in the container filesystem. Choose a diagnosis, a containment step and a prevention strategy.
The image tag changes under the rollout
A mutable tag points to different builds. Choose a diagnosis, a containment step and a prevention strategy.
The job overlaps its previous run
Scheduled import takes longer than its interval. Choose a diagnosis, a containment step and a prevention strategy.
The service listens only on loopback
Container process starts successfully. Choose a diagnosis, a containment step and a prevention strategy.
The graceful shutdown waits forever
Worker drain has no deadline. Choose a diagnosis, a containment step and a prevention strategy.
Performance
The allocation rate outruns collection
Live heap after GC stays steady. Choose a diagnosis, a containment step and a prevention strategy.
The retained heap grows after every tenant
Completed tenant sessions remain referenced by a static registry with no removal. Choose a diagnosis, a containment step and a prevention strategy.
The tiny payload has expensive regex
A crafted input makes regex evaluation consume seconds while input length stays modest. Choose a diagnosis, a containment step and a prevention strategy.
The logging path becomes synchronous
Verbose logging sends every request detail to a slow remote sink on request threads. Choose a diagnosis, a containment step and a prevention strategy.
The cache improves averages and hurts p99
Cache miss loads huge objects under a global lock. Choose a diagnosis, a containment step and a prevention strategy.
The compressed response burns all CPU
Large responses are compressed at the highest level. Choose a diagnosis, a containment step and a prevention strategy.
The benchmark excludes initialization
Microbenchmark reports a fast call but production repeatedly rebuilds the expensive client before each use. Choose a diagnosis, a containment step and a prevention strategy.
The warmup test predicts the wrong latency
Performance test stops during JIT warmup. Choose a diagnosis, a containment step and a prevention strategy.
The direct buffers exhaust native memory
Heap appears healthy. Choose a diagnosis, a containment step and a prevention strategy.
The synchronized formatter dominates CPU
Thread samples show contention around a shared formatter. Choose a diagnosis, a containment step and a prevention strategy.
The list lookup becomes quadratic
For every item, code scans the entire existing list. Choose a diagnosis, a containment step and a prevention strategy.
The memory optimization increases copying
Small buffer size reduces allocation per buffer but multiplies copies and system calls. Choose a diagnosis, a containment step and a prevention strategy.
The benchmark serves cached data only
Load generator repeats one key. Choose a diagnosis, a containment step and a prevention strategy.
Delivery & reliability
The release uses a stale dependency cache
CI cache restores dependencies from a different lockfile. Choose a diagnosis, a containment step and a prevention strategy.
The rollback cannot read new rows
New release writes a new required enum value. Choose a diagnosis, a containment step and a prevention strategy.
The feature flag differs across request steps
One workflow evaluates a mutable flag twice and mixes old and new business behavior. Choose a diagnosis, a containment step and a prevention strategy.
The migration runs on every replica
Every starting replica executes the same non-idempotent schema migration concurrently. Choose a diagnosis, a containment step and a prevention strategy.
The build reads an uncommitted file
Developer's build uses a local config ignored by Git. Choose a diagnosis, a containment step and a prevention strategy.
The canary gets only easy traffic
Canary receives health checks and low-risk users. Choose a diagnosis, a containment step and a prevention strategy.
The deployment passes before assets upload
Backend references a new asset hash while upload is still incomplete. Choose a diagnosis, a containment step and a prevention strategy.
The database backup was never restored
Backups report success. Choose a diagnosis, a containment step and a prevention strategy.
The smoke test uses an admin account
Admin smoke tests pass while ordinary purchasers cannot access their paid content. Choose a diagnosis, a containment step and a prevention strategy.
The rollback switches code but not config
Old binary restarts with renamed required variables from the new release and cannot initialize. Choose a diagnosis, a containment step and a prevention strategy.
The secret is embedded in the frontend build
A build-time variable is bundled into public JavaScript. Choose a diagnosis, a containment step and a prevention strategy.
The artifact changes after approval
Release job rebuilds from a moving branch after tests. Choose a diagnosis, a containment step and a prevention strategy.
The dependency outage blocks every deployment
Build fetches an unpinned remote script that becomes unavailable or changes behavior. Choose a diagnosis, a containment step and a prevention strategy.
Data integrity
The money total drifts by cents
Repeated binary floating-point operations produce a total differing from the invoice's decimal rules. Choose a diagnosis, a containment step and a prevention strategy.
The local time occurs twice
A scheduled transfer uses a local wall-clock time during a daylight-saving fallback and runs twice. Choose a diagnosis, a containment step and a prevention strategy.
The unique email accepts alternate forms
Application normalizes email for lookup but the uniqueness check uses a different representation. Choose a diagnosis, a containment step and a prevention strategy.
The CSV import evaluates a formula
Exported user text begins with a spreadsheet formula marker. Choose a diagnosis, a containment step and a prevention strategy.
The deletion leaves a dangling record
A parent is removed while dependent rows remain. Choose a diagnosis, a containment step and a prevention strategy.
The soft-deleted record blocks reuse
A business key is globally unique even though policy allows reuse after soft deletion. Choose a diagnosis, a containment step and a prevention strategy.
The timezone is discarded at ingestion
Importer strips the supplied offset and stores local text as UTC. Choose a diagnosis, a containment step and a prevention strategy.
The null passes the validation rule
A database CHECK expression evaluates unknown for null. Choose a diagnosis, a containment step and a prevention strategy.
The dedup key expires before retries stop
Provider retries old events after local dedup records have been deleted. Choose a diagnosis, a containment step and a prevention strategy.
The aggregate uses mixed currencies
Report adds numeric amounts across USD and JPY without currency grouping or conversion policy. Choose a diagnosis, a containment step and a prevention strategy.
The migration truncates historical values
A column is narrowed after checking only recent rows. Choose a diagnosis, a containment step and a prevention strategy.
The inventory cannot explain its balance
System stores only current stock and overwrites it for every adjustment. Choose a diagnosis, a containment step and a prevention strategy.
The uniqueness rule ignores tenant scope
Database declares username globally unique. Choose a diagnosis, a containment step and a prevention strategy.
Three complete drills are free without an account or card. The full edition requires a verified purchase when checkout is available. These fictional exercises provide learning feedback, not hiring predictions.