Unique, check, and now foreign key violations in Plain all surface the same way: create()/update() attempt the write, Postgres rejects it, and you get a ValidationError on the field — "Author with id 5 does not exist." No pre-check SELECTs, no raced-duplicate 500s.
The full-stack Python framework designed for humans and agents. Follow for development updates. Follow @davegaeddert for more background.

