If the server returns an HTTP status 100, that value will get memoized. If, on the subsequent continuation request it returns a 200 (as we would expect), the status() method still returns the memoized 100 instead of the newly correct 200, which causes requests to fail with 'connection closed by server'.
Since the author won't be maintaining the sinatra-synchrony gem and recommends not using it, we probably shouldn't be linking to it. From the sinatra-synchrony README: > This gem should not be considered for a new application. It is better to use threads with Ruby, > rather than EventMachine. It also tends to break when new releases of ruby come out, and EM itself > is not maintained very well and has some pretty fundamental problems. > > I will not be maintaining this gem anymore. If anyone is interested in maintaining it, feel free > to inquire, but I recommend not using EventMachine or sinatra-synchrony anymore.