I saw the CI fail on master, apparently the https://github.com/pedestal/pedestal/blob/master/tests/test/io/pedestal/interceptor/observer_test.clj#L59-L83 is a bit inconsistent. I think there is a race condition: we close the done-ch in the ::terminate interceptor, so the test L76 proceeds while we are still running the interceptor. The test L78 can happen either before or after the observer register the ::terminate interceptor. If observer registers when entering an interceptor the test would always work, but since it registers when we leave the interceptor we should probably not test that last one.
The other test that seems to fail sometimes is due to a timeout https://github.com/pedestal/pedestal/blob/ae26a4e68d69db8891e94440280bf79a3499e504/tests/test/io/pedestal/http/websocket_test.clj#L255. The configured timeout is quite low: https://github.com/pedestal/pedestal/blob/ae26a4e68d69db8891e94440280bf79a3499e504/tests/test/io/pedestal/async_events.clj#L30, and it probably fails because the github ci runner is a bit slow.
Merged and thank you!