During a recent internal Bitmovin hackathon focused on experimenting with AI tools, I decided to work on a project I had been wanting to explore, even though it was outside of our usual video focus. I gave myself a simple solo project that I thought would be a great way to test modern AI coding assistants: integrate an API that returns solar generation data. It turns out what should have been a straightforward integration turned into a two day reminder of how easily AI can fail. Two leading tools, Cursor and Claude, both hit the same tiny string formatting bug and neither could get past it. The outcome was that they were defeated by the exact same task, but in completely different ways. One ran into a silent logical wall, while the other dramatically hallucinated a completely false solution. The Shared Battlefield: A Hyper-Specific Signature My objective was to interface with the FoxESSCloud platform. The core hurdle was generating a unique signature for every request, a standard practice in proprietary APIs to ensure request authenticity and to prevent tampering. This signature is produced by taking a concatenated string of five critical request parameters: HTTP method (POST) API path Unique auth token, Timestamp JSON request body Then you run that final string through an HMAC-SHA256 hash function. The difficulty lay entirely in the preparation of the input string, not in the hashing itself. The Stumbling Block: The Concatenation Trap The API documentation required the string to be concatenated using newline characters (\n). However, the API was expecting the newlines to be handled as literal characters within certain parts of the string, and not simply as concatenation operators. This created a massive blind spot for both AI tools, as shown in the examples below. StatusPseudo-Code Generated by AI (Wrong)The Required Format (Right)ProblemThe AI-generated code often used concatenation operators (+ “\n” +) to build the string, resulting in the “illegal signature” err...
First seen: 2025-11-28 23:42
Last seen: 2025-11-28 23:42