Let me explain the situation.
I am developing a piece of client side software that communicates with a server. The server is both physically remote, and is not running software that I developed. All my communication with is is done via tools and closed source client side binary APIs.
In between my application and the API is a large middleware/framework layer that I do, fortunately, have source code for.
But let me take a step back. To access at all the server I need to have an application profile uploaded to it, that contains, amongst other things, information about what services my application supports. This profile is created with a GUI tool that is largely undocumented. Updating the profile on live server with the tool has a "24 hour turn around", though, fortunately, it is in practice usually live in under an hour.
Now, in order to create a connection/session on the server I have to pass in flags that match the subset of functionality set up via the application profile.
Setting the session flags is done via the middleware layer, and is largely undocumented.
If you get something mismatched, the API spits out an error message that says:
Continuing transaction while processing HTTP headers failed (err = 0xHEXVALUE)
Couldn't continue processing HTTP headers, err = 0xHEXVALUE
The hex value is undocumented, but digging around in header files I see it defined and commented as (paraphrased) "//UR DOIN IT WRON".
Requesting support from the middleware supplier, who is in a different time zone to me, results in a back and forth that goes something like this:
Me: Hi, I've done FOO, BAR, etc, in detail, and I get "ERROR MESSAGE", any idea what causes this?
Vendor: That error message is what you see if you've done it wrong.
Me: Hi, thanks, I was wondering if you could explain how I can find out what exactly it is I've done wrong.
Vendor: Hi, yeah, you've set up your flags wrong, you need to set them up right. Look at our example app.
Me: Hi, I've done it like the example app X and it still doesn't work.
Vendor: Oh no, not that example app. That one doesn't work with the service provider you use. Look at example app Y.
Me: Hi, example app Y is using an older version of the middleware, and has totally different codepaths and settings to the middleware version we are on. Can you confirm the middleware version we are using actually work with the our service provider?
Vendor: Yes it works. Have you done [thing I already told them I'd done in the first email]?
And so on, and so forth.
/slashwrist
Update [2008-5-1 12:12:37 by codemonkey uk]:
I found a solution on the user newsgroup for the service provider, in a thread titled "APIFunction() poor error output, does not help to debug the issue..." in which a single customer described the problem then a few days later replied to himself with a solution, and a suggestion to fix the tool, which apparently doesn't add a required section when creating a new profile. The solution? You have to manually add that section to the profile by right clicking on the root note and selecting "add matchmaking". the middleware vendor still hasn't got back to me...
| < I should eat a pony | Sparring. > |

