This was an interesting error to debug! It comes from a Sinatra app traceback, but the full traceback wasn't much help, here's a little bit of it:
Read error: #<IndexError: string not matched> /var/lib/gems/1.9.1/gems/sinatra-1.0.a/lib/sinatra/base.rb:600:in `[]=' /var/lib/gems/1.9.1/gems/sinatra-1.0.a/lib/sinatra/base.rb:600:in `handle_exception!' /var/lib/gems/1.9.1/gems/sinatra-1.0.a/lib/sinatra/base.rb:586:in `rescue in dispatch!' /var/lib/gems/1.9.1/gems/sinatra-1.0.a/lib/sinatra/base.rb:589:in `dispatch!'
I think it turned out to be an encoding error, but I'm not sure why this IndexError was showing up. Turns out that this bit of code doesn't cause a problem when there are no errors, but causes the IndexError when there is a problem:
@env = settings.environment
This is most likely Sinatra specific, if I change @env to @myenv, its OK. Since I don't actually need it, I've removed it altogether.
And to fix the encoding issue:
rlinks.encode('UTF-8', undef: :replace, invalid: :replace)