If the max packet size is too small, then devices will fail to configure. This occurs because the response to "get device descriptor" is split into multiple packets. If I increase the max packet size, then configuration is successful. I have an example here: https://github.com/tkonolige/keyberon_failed_configure/blob/main/src/main.rs.
I'm not sure if this is intended behavior or if it is a bug.