Yikes this is a nasty rustc compiler bug that is in stable: https://github.com/rust-lang/rust/issues/64552#issuecomment-533267241

The sucky part is appears you can trigger it by consuming a normal async function. The actual code that needs to be fixed is not even in the diagnostic.

Lifetime bounds in auto trait impls prevent trait from being implemented on generators · Issue #64552 · rust-lang/rust

use std::collections::{BTreeMap, HashMap}; use std::sync::Arc; fn needs_send<T: Send>(_val: T) {} async fn async_fn_a(_num: u32) {} async fn async_fn_b(map: Arc<BTreeMap<u32, &'static u32>>) { for ...

GitHub
Looks like mine was just a lifetime error https://github.com/robo-corg/porgi/commit/064176f028d5c9601bb661ace64c6a016438ba9c but the error message is really not helpful at all.
Fix for weird bug · robo-corg/porgi@064176f

A tool to organize and find projects. Contribute to robo-corg/porgi development by creating an account on GitHub.

GitHub