fintual-backend-devops-go / reports / known-bugs.md
known-bugs.md
Raw

Reference behavior and known bugs

Reference: original Django application at b74e8ed. Functional fixes are outside this exercise's agreed scope. The contract captures include database effects.

Trigger Existing behavior Treatment
Create a post with a missing tag after an existing tag 500 after persisting the post and earlier tag associations Preserve and test partial state
Find an email shared by multiple users Unhandled multiple-record error, 500 Preserve, do not add uniqueness
Read a post Increments view_count and modifies updated_at Preserve both effects
Concurrent reads of the same post Read/modify/save can lose increments and overwrite other concurrent changes Document race; do not introduce an atomic increment
Fetch an unpublished post by ID Returns the draft and comments Preserve; list/search still filter drafts
List/search/tag endpoints Return all matches, without pagination Preserve response scope and measure full payloads
Post title longer than 255 characters Input schema permits it; database rejects the insert Capture the failure instead of adding new validation

None of these is presented as newly discovered author intent. They are observable consequences of the supplied code. Runtime captures live in fixtures/contract/.

The Gunicorn reference also emitted unexpected body bytes after a HEAD 405 response, which Go's HTTP client logged as an unsolicited response. The contract checks its 405 status and Allow header. It does not reproduce invalid connection framing or compare a HEAD entity body, which the HTTP client does not expose. Transport framing is explicitly outside the comparison fields in methodology.md.