! go get -v example.net/a@v0.1.0 ! stderr panic stderr 'example.net/d@v0.1.0 requires\n\texample.net/invalid' -- go.mod -- module example replace ( example.net/a v0.1.0 => ./a example.net/b v0.1.0 => ./b1 example.net/b v0.2.0 => ./b2 example.net/c v0.1.0 => ./c1 example.net/c v0.2.0 => ./c2 example.net/d v0.1.0 => ./d ) require ( example.net/b v0.1.0 ) -- a/go.mod -- module example.net/a go 1.18 require example.net/b v0.2.0 -- a/a.go -- package a import _ "example.net/b" -- b1/go.mod -- module example.net/b go 1.16 -- b1/b.go -- package b -- b2/go.mod -- module example.net/b go 1.16 require example.net/c v0.2.0 -- b2/b.go -- package b -- b2/b_test.go -- package b_test import _ "example.net/c" -- c1/go.mod -- module example.net/c go 1.18 -- c1/c.go -- package c -- c2/go.mod -- module example.net/c go 1.18 require example.net/d v0.1.0 -- c2/c.go -- package c -- c2/c_test.go -- package c_test import _ "example.net/d" -- d/go.mod -- module example.net/d go 1.18 require example.net/invalid v0.1.0 -- d/d.go -- package d -- d/d_test.go -- package d import _ "example.net/invalid"