Schemathesis v4.21.0 Release Notes

Release Date: 2026-05-31 // 11 days ago
  • 🚀 Added

    • Chain GraphQL operations on non-id identifiers (fullPath, slug, ...) in stateful and fuzzing phases.

    🐎 🏎️ Performance

    • Much lower peak memory and faster validation for schemas with very large maxLength / maxItems.
    • 🏗 Cache failed validator builds to avoid recompiling invalid patterns from large maxLength / maxItems values.
    • 🐎 Update hypothesis-graphql to 0.13.0 that brings up to 180x performance improvements for deeply nested GraphQL schemas.
    • 🐎 Update harfile to 0.5.0 for slightly better performance.
    • Lower memory usage in long stateful runs.
    • Faster, lower-memory stateful state machine construction for large schemas.

    🛠 🐛 Fixed

    • ✅ Excessive re-runs in stateful testing against APIs with mutable state.
    • ✅ Stateful testing restarting on a single transient transport failure (e.g. dropped connection).
    • Semantic value substitution overwriting const / enum fields with invalid data.

    🔧 Changed

    • 👻 Mine additionalProperties: false from Pydantic extra_forbidden errors and the exception_detail validation envelope.

Previous changes from v4.20.3

  • 🐎 🏎️ Performance

    • Skip coverage generation for header and cookie parameters whose pattern requires a non-alphanumeric character.
    • ✅ Faster operation ordering and case traversal in stateful testing for schemas with many operations.

    🛠 🐛 Fixed

    • Fuzzing phase marked as failed without any reported failure. #4209
    • Generate maximum-length boundary cases for unanchored multi-part patterns with maxLength.
    • Display the actual response time in milliseconds in max_response_time failures.