When a mock response looks wrong, first check which operation, response status, and media type the mock selected. Then check whether it returned an explicit example or generated data from the schema, and validate the result against the exact OpenAPI contract revision the mock is using. An unexpected 404 may point to a route or stub-matching problem—not a schema-generation problem.
1. Confirm the request reaches the intended operation
Compare the request with the operation defined in your OpenAPI document: HTTP method, path, query parameters, and server address. A request that reaches a different route—or no route—cannot return the response you expect. Prism’s CLI can list the operations it discovers in a specification; consult the Prism CLI documentation for the installed version’s commands and output.
As an Amazon Associate I earn from qualifying purchases.
If Prism runs in Docker, check how the server is bound and whether it is reachable from outside the container. Prism’s repository documentation notes that localhost binding can prevent access from outside the container unless the host is configured appropriately.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →2. Check the selected status and media type
OpenAPI examples belong to a response definition and a media type within that response. Record the actual HTTP status and response Content-Type, then compare them with the response and content entries in the specification. Also inspect the request’s Accept header: Prism respects content negotiation, so a different acceptable media type can affect which response representation it serves. The Prism response-generation guide explains this behavior.
The response status matters too. Prism’s guide advises indicating the response code from which an example should be taken; if the mock selects a different status, an example attached to another response may not be used. Check the status and media type together before changing the schema.
3. Find out whether an example or generated data was returned
Explicit examples
In Prism, an explicit response-body example takes precedence when one is present for the selected response and media type. If there are multiple examples, the documentation describes choosing a named example with the Prefer header—for example, Prefer: example=dog. Verify that the example is nested under the response and media type the request actually selected, and check that the mock has not been configured to ignore examples. See the Prism response-generation guide.
Schema-generated values
If the selected response has no applicable example, Prism’s static generation can use the schema and referenced schemas. Its documented fallbacks include defaults, schema examples, null for nullable fields, format-aware values, and generic values for unconstrained primitive strings or numbers. A generic-looking value may therefore still satisfy the contract; compare it with the schema rather than an expectation that was never specified. The same guide describes these generation rules.
Rank #2
4. Check Prism’s generation mode
Prism uses static generation by default. Its CLI can enable dynamic generation with -d, and a Prefer header can request dynamic output for an individual call. Static generation follows the documented example, default, and schema fallback behavior; dynamic generation uses a schema-based generator. If output differs from an example you expected, confirm the mode and any request-level preference before editing the contract. Check the generation guide and the CLI documentation for your installed Prism version, since flags and defaults can change.
5. Inspect the schema and its references
For the exact response selected, follow any $ref references and check the constraints that determine valid values. In particular, inspect:
- Required properties, property names, and data types.
- Nullability, enums, defaults, and examples.
- Formats, such as date or date-time strings.
- Array item schemas and nested object properties.
- Whether every referenced schema resolves in the same specification revision used by the mock.
If a value appears unexpected, distinguish “not the value I wanted” from “invalid under the schema.” A schema can allow a broad range of values; if the mock generates one within that range, the remedy may be to add a more specific example or constraint rather than to treat generation as a contract violation. Prism’s generation guide describes its behavior, but actual defaults and options should be checked against the version in use.
Rank #3
- Contains one (1) API 5-IN-1 TEST STRIPS Freshwater and Saltwater Aquarium Test Strips 25-Count Box
- Monitors levels of pH, nitrite, nitrate carbonate and general water hardness in freshwater and saltwater aquariums
- Dip test strips into aquarium water and check colors for fast and accurate results
- Helps prevent invisible water problems that can be harmful to fish and cause fish loss
- Use for weekly monitoring and when water or fish problems appear
6. If you see a 404, check request matching
A 404 or unexpected body may mean the request did not match the intended stub. WireMock’s documentation says an unmatched request returns an HTML 404, which is different from a mock successfully generating a schema-based response. Check the request-matching criteria—such as method, URL, headers, or body constraints—against the request actually sent. See WireMock’s stubbing documentation.
Free tools Windows power users keep installed
One-click scans. No signup required.
7. Validate the payload against the same contract
Validate the actual response body against the OpenAPI schema revision the mock loaded. A plausible payload is not proof that it complies, and a mismatch can come from either the generated response or the contract file being different from the one you inspected.
Tool behavior and supported schema versions are not interchangeable. WireMock documents a JSON Schema request-body matcher and configurable schema versions, with JSON Schema 2020-12 as its documented default; this is a request-matching feature, not evidence that it validates every response body. See WireMock request matching and WireMock configuration documentation. MockServer documents OpenAPI-driven response generation and response validation; check its expectations documentation and verification documentation for the feature and version you use. Do not assume these products share the same generation rules, validation coverage, or defaults.
8. Compare a real API with the contract when needed
If the real service may have drifted from its OpenAPI description, Prism’s validation proxy can forward traffic to a designated upstream API and report discrepancies. Use it in development, staging, QA, or pre-production, where you can inspect mismatches without placing validation in the production critical path. The Prism validation-proxy guide describes the setup and cautions against using it in production.
9. Capture enough evidence to reproduce the mismatch
Enable verbose request and response logging where supported; Prism documents verbose logging in its CLI guide. Keep a compact record of:
Recommended Free Tools
- HTTP method, full URL, and the operation you expected to match.
- Actual status code, request
Accept, and responseContent-Type. - Any relevant
Preferheader, including a named example or dynamic-generation preference. - Mock product and version, generation mode, and exact specification revision.
- Response body and any validator error, with credentials and sensitive values redacted before sharing.
These details help separate routing, content negotiation, example selection, generation, and contract-validation issues without assuming that every odd-looking payload has the same cause.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




