Never mind, looks like after rummaging through handler/fastcgi.rb, the answer is to set a Content-Length header to the empty string. This tricks Rack::Chunked which only tests for the presence of the header, not its content. I'm a bit apprehensive about this solution but for now it works.