big refactoring, queueing to avoid racing on the server
don't parse null payloads, use closed instead of running in bump_queue