[INFO] cloning repository https://github.com/subhdotsol/rust-todo-backend
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/subhdotsol/rust-todo-backend" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsubhdotsol%2Frust-todo-backend", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsubhdotsol%2Frust-todo-backend'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ac016516b533266945acd763e320977a550c63c5
[INFO] checking subhdotsol/rust-todo-backend against 16d1ffac17ad8b739e32483ac2e65fe7e1804977 for pr-161154-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsubhdotsol%2Frust-todo-backend" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/subhdotsol/rust-todo-backend
[INFO] finished tweaking git repo https://github.com/subhdotsol/rust-todo-backend
[INFO] tweaked toml for git repo https://github.com/subhdotsol/rust-todo-backend written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/subhdotsol/rust-todo-backend on toolchain 16d1ffac17ad8b739e32483ac2e65fe7e1804977
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+16d1ffac17ad8b739e32483ac2e65fe7e1804977" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/subhdotsol/rust-todo-backend already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+16d1ffac17ad8b739e32483ac2e65fe7e1804977" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bytestring v1.5.0
[INFO] [stderr]   Downloaded actix-http v3.12.0
[INFO] [stderr]   Downloaded jsonwebtoken v10.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db
[INFO] running `Command { std: "docker" "start" "7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db" "/opt/rustwide/cargo-home/bin/cargo" "+16d1ffac17ad8b739e32483ac2e65fe7e1804977" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db" "/opt/rustwide/cargo-home/bin/cargo" "+16d1ffac17ad8b739e32483ac2e65fe7e1804977" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking ff v0.13.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking base16ct v0.2.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]     Checking local-waker v0.1.4
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking brotli-decompressor v5.0.0
[INFO] [stderr]     Checking actix-utils v3.0.1
[INFO] [stderr]     Checking primeorder v0.13.6
[INFO] [stderr]     Checking actix-rt v2.11.0
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]    Compiling bytestring v1.5.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking actix-service v2.0.3
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling actix-router v0.5.4
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking local-channel v0.1.5
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking pkcs1 v0.7.5
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]     Checking actix-server v2.6.0
[INFO] [stderr]     Checking simple_asn1 v0.6.4
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking rsa v0.9.10
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]     Checking blowfish v0.9.1
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]     Checking p384 v0.13.1
[INFO] [stderr]     Checking p256 v0.13.2
[INFO] [stderr]     Checking env_filter v1.0.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]     Checking jiff v0.2.23
[INFO] [stderr]     Checking impl-more v0.1.9
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking jsonwebtoken v10.3.0
[INFO] [stderr]     Checking bcrypt v0.19.0
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking actix-http v3.12.0
[INFO] [stderr]     Checking env_logger v0.11.9
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]     Checking actix-web v4.13.0
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking todo-app v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/auth.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |       let user = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 24 | |         crate::models::user::User,
[INFO] [stdout] 25 | |         r#"
[INFO] [stdout] 26 | |         INSERT INTO users (id, username, email, password_hash)
[INFO] [stdout] ...  |
[INFO] [stdout] 33 | |         password_hash
[INFO] [stdout] 34 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/auth.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |       let user = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 24 | |         crate::models::user::User,
[INFO] [stdout] 25 | |         r#"
[INFO] [stdout] 26 | |         INSERT INTO users (id, username, email, password_hash)
[INFO] [stdout] ...  |
[INFO] [stdout] 33 | |         password_hash
[INFO] [stdout] 34 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/auth.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 53 |       let user = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 54 | |         crate::models::user::User,
[INFO] [stdout] 55 | |         "SELECT * FROM users WHERE email = $1",
[INFO] [stdout] 56 | |         body.email
[INFO] [stdout] 57 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/auth.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 53 |       let user = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 54 | |         crate::models::user::User,
[INFO] [stdout] 55 | |         "SELECT * FROM users WHERE email = $1",
[INFO] [stdout] 56 | |         body.email
[INFO] [stdout] 57 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |       let todos = sqlx::query_as!(
[INFO] [stdout]    |  _________________^
[INFO] [stdout] 15 | |         Todo,
[INFO] [stdout] 16 | |         "SELECT * FROM todos WHERE user_id = $1 ORDER BY created_at DESC",
[INFO] [stdout] 17 | |         auth.user_id
[INFO] [stdout] 18 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |       let todos = sqlx::query_as!(
[INFO] [stdout]    |  _________________^
[INFO] [stdout] 15 | |         Todo,
[INFO] [stdout] 16 | |         "SELECT * FROM todos WHERE user_id = $1 ORDER BY created_at DESC",
[INFO] [stdout] 17 | |         auth.user_id
[INFO] [stdout] 18 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |       let todo = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 35 | |         Todo,
[INFO] [stdout] 36 | |         r#"
[INFO] [stdout] 37 | |         INSERT INTO todos (id, user_id, title, description)
[INFO] [stdout] ...  |
[INFO] [stdout] 44 | |         body.description
[INFO] [stdout] 45 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |       let todo = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 35 | |         Todo,
[INFO] [stdout] 36 | |         r#"
[INFO] [stdout] 37 | |         INSERT INTO todos (id, user_id, title, description)
[INFO] [stdout] ...  |
[INFO] [stdout] 44 | |         body.description
[INFO] [stdout] 45 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |       let todo = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 60 | |         Todo,
[INFO] [stdout] 61 | |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 62 | |         todo_id,
[INFO] [stdout] 63 | |         auth.user_id
[INFO] [stdout] 64 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |       let todo = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 60 | |         Todo,
[INFO] [stdout] 61 | |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 62 | |         todo_id,
[INFO] [stdout] 63 | |         auth.user_id
[INFO] [stdout] 64 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:81:20
[INFO] [stdout]    |
[INFO] [stdout] 81 |       let existing = sqlx::query_as!(
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 82 | |         Todo,
[INFO] [stdout] 83 | |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 84 | |         todo_id,
[INFO] [stdout] 85 | |         auth.user_id
[INFO] [stdout] 86 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]   --> src/routes/todos.rs:81:20
[INFO] [stdout]    |
[INFO] [stdout] 81 |       let existing = sqlx::query_as!(
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 82 | |         Todo,
[INFO] [stdout] 83 | |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 84 | |         todo_id,
[INFO] [stdout] 85 | |         auth.user_id
[INFO] [stdout] 86 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]    --> src/routes/todos.rs:100:19
[INFO] [stdout]     |
[INFO] [stdout] 100 |       let updated = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 101 | |         Todo,
[INFO] [stdout] 102 | |         r#"
[INFO] [stdout] 103 | |         UPDATE todos
[INFO] [stdout] ...   |
[INFO] [stdout] 113 | |         auth.user_id
[INFO] [stdout] 114 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]    --> src/routes/todos.rs:100:19
[INFO] [stdout]     |
[INFO] [stdout] 100 |       let updated = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 101 | |         Todo,
[INFO] [stdout] 102 | |         r#"
[INFO] [stdout] 103 | |         UPDATE todos
[INFO] [stdout] ...   |
[INFO] [stdout] 113 | |         auth.user_id
[INFO] [stdout] 114 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]    --> src/routes/todos.rs:128:18
[INFO] [stdout]     |
[INFO] [stdout] 128 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 129 | |         "DELETE FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 130 | |         todo_id,
[INFO] [stdout] 131 | |         auth.user_id
[INFO] [stdout] 132 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Connection refused (os error 111)
[INFO] [stdout]    --> src/routes/todos.rs:128:18
[INFO] [stdout]     |
[INFO] [stdout] 128 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 129 | |         "DELETE FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 130 | |         todo_id,
[INFO] [stdout] 131 | |         auth.user_id
[INFO] [stdout] 132 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/routes/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/routes/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/routes/todos.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/routes/todos.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Todo` and `self`
[INFO] [stdout]  --> src/routes/todos.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 |     models::todo::{self, CreateTodoRequest, Todo, UpdateTodoRequest},
[INFO] [stdout]   |                    ^^^^                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Todo` and `self`
[INFO] [stdout]  --> src/routes/todos.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 |     models::todo::{self, CreateTodoRequest, Todo, UpdateTodoRequest},
[INFO] [stdout]   |                    ^^^^                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Responder` and `get`
[INFO] [stdout]  --> src/main.rs:8:34
[INFO] [stdout]   |
[INFO] [stdout] 8 | use actix_web::{App, HttpServer, Responder, get, middleware::Logger, web};
[INFO] [stdout]   |                                  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Responder` and `get`
[INFO] [stdout]  --> src/main.rs:8:34
[INFO] [stdout]   |
[INFO] [stdout] 8 | use actix_web::{App, HttpServer, Responder, get, middleware::Logger, web};
[INFO] [stdout]   |                                  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]   --> src/routes/auth.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 |     .ok_or_else(|| AppError::Unauthorized("Invalid credentials".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider providing a type annotation
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout]    = note: `#[warn(method_call_on_diverging_infer_var)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]   --> src/routes/auth.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 |     .ok_or_else(|| AppError::Unauthorized("Invalid credentials".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider providing a type annotation
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout]    = note: `#[warn(method_call_on_diverging_infer_var)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `ok_or_else` found for type `!` in the current scope
[INFO] [stdout]   --> src/routes/auth.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let user = sqlx::query_as!(
[INFO] [stdout] 54 |         crate::models::user::User,
[INFO] [stdout] 55 |         "SELECT * FROM users WHERE email = $1",
[INFO] [stdout] 56 |         body.email
[INFO] [stdout] 57 |     )
[INFO] [stdout] 58 |     .fetch_optional(pool.get_ref())
[INFO] [stdout] 59 |     .await?
[INFO] [stdout] 60 |     .ok_or_else(|| AppError::Unauthorized("Invalid credentials".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `ok_or_else` found for type `!` in the current scope
[INFO] [stdout]   --> src/routes/auth.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let user = sqlx::query_as!(
[INFO] [stdout] 54 |         crate::models::user::User,
[INFO] [stdout] 55 |         "SELECT * FROM users WHERE email = $1",
[INFO] [stdout] 56 |         body.email
[INFO] [stdout] 57 |     )
[INFO] [stdout] 58 |     .fetch_optional(pool.get_ref())
[INFO] [stdout] 59 |     .await?
[INFO] [stdout] 60 |     .ok_or_else(|| AppError::Unauthorized("Invalid credentials".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]   --> src/routes/todos.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 |     .ok_or_else(|| AppError::NotFound("Todo not found".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider providing a type annotation
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]   --> src/routes/todos.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 |     .ok_or_else(|| AppError::NotFound("Todo not found".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider providing a type annotation
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `ok_or_else` found for type `!` in the current scope
[INFO] [stdout]   --> src/routes/todos.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let todo = sqlx::query_as!(
[INFO] [stdout] 60 |         Todo,
[INFO] [stdout] 61 |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 62 |         todo_id,
[INFO] [stdout] 63 |         auth.user_id
[INFO] [stdout] 64 |     )
[INFO] [stdout] 65 |     .fetch_optional(pool.get_ref())
[INFO] [stdout] 66 |     .await?
[INFO] [stdout] 67 |     .ok_or_else(|| AppError::NotFound("Todo not found".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `ok_or_else` found for type `!` in the current scope
[INFO] [stdout]   --> src/routes/todos.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let todo = sqlx::query_as!(
[INFO] [stdout] 60 |         Todo,
[INFO] [stdout] 61 |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 62 |         todo_id,
[INFO] [stdout] 63 |         auth.user_id
[INFO] [stdout] 64 |     )
[INFO] [stdout] 65 |     .fetch_optional(pool.get_ref())
[INFO] [stdout] 66 |     .await?
[INFO] [stdout] 67 |     .ok_or_else(|| AppError::NotFound("Todo not found".into()))?;
[INFO] [stdout]    |      ^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]   --> src/routes/todos.rs:89:6
[INFO] [stdout]    |
[INFO] [stdout] 89 |     .ok_or_else(|| AppError::NotFound(format!("Todo {} not found", todo_id)))?;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider providing a type annotation
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]   --> src/routes/todos.rs:89:6
[INFO] [stdout]    |
[INFO] [stdout] 89 |     .ok_or_else(|| AppError::NotFound(format!("Todo {} not found", todo_id)))?;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider providing a type annotation
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `ok_or_else` found for type `!` in the current scope
[INFO] [stdout]   --> src/routes/todos.rs:89:6
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let existing = sqlx::query_as!(
[INFO] [stdout] 82 |         Todo,
[INFO] [stdout] 83 |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 84 |         todo_id,
[INFO] [stdout] 85 |         auth.user_id
[INFO] [stdout] 86 |     )
[INFO] [stdout] 87 |     .fetch_optional(pool.get_ref())
[INFO] [stdout] 88 |     .await?
[INFO] [stdout] 89 |     .ok_or_else(|| AppError::NotFound(format!("Todo {} not found", todo_id)))?;
[INFO] [stdout]    |      ^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `ok_or_else` found for type `!` in the current scope
[INFO] [stdout]   --> src/routes/todos.rs:89:6
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let existing = sqlx::query_as!(
[INFO] [stdout] 82 |         Todo,
[INFO] [stdout] 83 |         "SELECT * FROM todos WHERE id = $1 AND user_id = $2",
[INFO] [stdout] 84 |         todo_id,
[INFO] [stdout] 85 |         auth.user_id
[INFO] [stdout] 86 |     )
[INFO] [stdout] 87 |     .fetch_optional(pool.get_ref())
[INFO] [stdout] 88 |     .await?
[INFO] [stdout] 89 |     .ok_or_else(|| AppError::NotFound(format!("Todo {} not found", todo_id)))?;
[INFO] [stdout]    |      ^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]    --> src/routes/todos.rs:136:15
[INFO] [stdout]     |
[INFO] [stdout] 136 |     if result.rows_affected() == 0 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider providing a type annotation
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method call on a diverging inference variable
[INFO] [stdout]    --> src/routes/todos.rs:136:15
[INFO] [stdout]     |
[INFO] [stdout] 136 |     if result.rows_affected() == 0 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider providing a type annotation
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #156047 <https://github.com/rust-lang/rust/issues/156047>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `rows_affected` found for type `!` in the current scope
[INFO] [stdout]    --> src/routes/todos.rs:136:15
[INFO] [stdout]     |
[INFO] [stdout] 136 |     if result.rows_affected() == 0 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `rows_affected` found for type `!` in the current scope
[INFO] [stdout]    --> src/routes/todos.rs:136:15
[INFO] [stdout]     |
[INFO] [stdout] 136 |     if result.rows_affected() == 0 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ method not found in `!`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/auth/jwt.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     .map_err(|e| AppError::Unauthorized("Invalid or expired token".to_string()))
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/auth/jwt.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     .map_err(|e| AppError::Unauthorized("Invalid or expired token".to_string()))
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `todo-app` (bin "todo-app" test) due to 12 previous errors; 13 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `todo-app` (bin "todo-app") due to 12 previous errors; 13 warnings emitted
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]  --> Cargo.toml:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | anyhow = "1.0.102"
[INFO] [stderr]   | ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: `todo-app` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db", kill_on_drop: false }`
[INFO] [stdout] 7681d9e64092081219d8094c22717040e1c83259ed1439a957ac0cda0a0577db
