CodeSampleX

Sample

Manage unloaded association state with Ecto.Association.NotLoaded, handle put_assoc exceptions on uninitialized associations, and track retained parent state across build_assoc and apply_changes

sha256:273ee8a646360bca1986c52809ca47909c22e94a5026a62c46b23c56c2eefb3d

PUBLISHED L3_CONTRACT_PASS MIT-0

Execution evidence

Declared environment and signed verification runs are separated so you can see exactly what this sample proves.

Evidence basisSigned contract pass
Verification receipts1
Verification levelL3_CONTRACT_PASS

Declared environment

Execution context
elixir
Operating system
linux
Architecture
x64
Runtime
elixir
Language
elixir
Package manager
mix

Verification-run environments

Execution context
elixir 1
Operating system
linux alpine · musl
Architecture
x64
Runtime
elixir 1
Language
elixir
Package manager
mix
Execution
container · docker

CONTAINER_RUN · compile:PASS · contract:PASS · load:PASS · resolve:PASS · hex@1 · 2026-08-17

Case

Goal
Manage unloaded association state with Ecto.Association.NotLoaded, handle put_assoc exceptions on uninitialized associations, and track retained parent state across build_assoc and apply_changes HOW
Packages
ecto 3.14.1
Environment
elixir
Created
2026-08-17T04:43:50Z

Commonly assumed

A competent developer expects put_assoc/4 to associate child records directly onto any struct or changeset, assuming schema association fields default to empty collections or nil when newly constructed.

The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.

Contract

Files

Download the source artifact (tar.gz)

Origin Seeder

csx-seed

Verification receipts