API error when specifying licenses

Using the old EOL api, specifying certain licences for certain taxa seems to provoke a 500 error. E.g.

/eol.org/api/pages/1.0.json?batch=true&id=4433638&images_per_page=1&videos_per_page=0&sounds_per_page=0&maps_per_page=0&texts_per_page=0&iucn=false&licenses=pd%7Ccc-by%7Ccc-by-sa&details=true&references=false&synonyms=false&taxonomy=false&language=en&cache_ttl=8826&vetted=1&common_names=true

If instead you use only licenses=pd, it works:

/eol.org/api/pages/1.0.json?batch=true&id=4433638&images_per_page=1&videos_per_page=0&sounds_per_page=0&maps_per_page=0&texts_per_page=0&iucn=false&licenses=pd&details=true&references=false&synonyms=false&taxonomy=false&language=en&cache_ttl=8826&vetted=1&common_names=true

I’m assuming this is unrelated to the other licence issue I posted

What an odd thing to change after all this time! And different behavior for different taxa… Thanks for reporting and linking; I’m afraid the to do list is pretty long, but we’ll get there!

Cooooool… I believe this is caused by an upgrade of MySQL that we did some months ago, now. At least, that’s my best guess. The error is caused by an illegal REGEXP expression. MySQL moved from an old-school (and, IMHO, lame) “Henry Spencer” implementation of REs to a more modern (IMO much better) ICU standard.

This SHOULD just be a matter of changing the esoteric word-boundary expressions ([[:<:]] and [[:>:]], put that in your pipe and smoke it) to plain old \b.

I’m not in a good position to try this RN, but I’ll change the code (what’s it gonna do? get more broken?) and loop back to this when I can manage a deploy…