I built notionless, a small Rust daemon that mirrors a Notion database into Paperless-ngx (a self-hosted document archive) as Markdown, so notes end up in the same full-text-searchable place as everything else you own. cargo build, cargo test, and cargo clippy were all green the whole time. Two real bugs only showed up once I pointed it at my actual, internet-facing Paperless instance, and both taught me something about reqwest and API design that unit tests couldn't have caught.

Bug 1: reqwest silently drops the Authorization header on a scheme-change redirect

Paperless-ngx paginates results with a next field containing the full URL for the next page. Behind a reverse proxy without X-Forwarded-Proto set, Paperless believes its own scheme is http://, even though the instance is actually served over https://. My client followed that next URL as-is:

let response = client

.get(&url) // url came straight from Paperless' `next` field