Hi Tuur,
No, it shouldn’t be like that. What client language/library are you using? Do you have the headers that you are sending? What’s in the content-type and accept headers?
Alex
Hi Tuur,
No, it shouldn’t be like that. What client language/library are you using? Do you have the headers that you are sending? What’s in the content-type and accept headers?
Alex
The hard part is that it almost never happens of course, so it’s difficult to reproduce.
I’ll be back when I have more…
What are those headers for regular requests?
Alex
What are those headers for regular requests?
Alex
Generally Authorization & Content-Type (application/json) for Post / Patch (HTTP 1.1).
The reason I was asking is that I have a feeling it is related to attachments / photos fields and server-side time-outs only. So I was figuring it might have been some sort of internal error forwarding that’s not converted or something.
But the problem might just as well be me too of course.
Hi Tuur,
No, it shouldn’t be like that. What client language/library are you using? Do you have the headers that you are sending? What’s in the content-type and accept headers?
Alex
Anyway, I’ve added the Accept (application/json) now too. I’ll be back…
So rethinking about this all; you probably take my content type header for post & patch as the default for your response and since that hint is missing for the other requests (specifically ‘get’) I get HTML?
So rethinking about this all; you probably take my content type header for post & patch as the default for your response and since that hint is missing for the other requests (specifically ‘get’) I get HTML?
Yeah, that’s probably it. We only look at content-type and if it’s not set, you’d get HTML. GET requests may or may not include content-type as it should be sending no content. There was a recent patch for that to airtable.js.
I think we’ll need to change it to just never return HTML for api.airtable.com. Our API always returns JSON anyway.
Yeah, that’s probably it. We only look at content-type and if it’s not set, you’d get HTML. GET requests may or may not include content-type as it should be sending no content. There was a recent patch for that to airtable.js.
I think we’ll need to change it to just never return HTML for api.airtable.com. Our API always returns JSON anyway.
I was lazily assuming that. And never noticed until I got timed out (which almost never happens).
Anyway, learned a couple of new things. Thanks for the help!
What are those headers for regular requests?
Alex
After adding the Accept header (to application/json) I’m still getting HTML with 504’s & 502’s. The weird thing is that sometimes the 502’s come in JSON. I’ve already double checked my code, but I’m pretty sure my calls are consistent.
Since these are both time-out errors could it be something in the processing (order?) on your side or can I try other headers / combinations?
<h1 class="my2">This page is taking too long to load.</h1>
<h3 class="quiet">Sorry about that. Please try refreshing and contact us if the problem persists.</h3>
What are those headers for regular requests?
Alex
I’ve noticed the order of setting the headers in my code is not consistent. Can’t phantom that could be a problem, but I’ve changed it anyway.
Yeah, that’s probably it. We only look at content-type and if it’s not set, you’d get HTML. GET requests may or may not include content-type as it should be sending no content. There was a recent patch for that to airtable.js.
I think we’ll need to change it to just never return HTML for api.airtable.com. Our API always returns JSON anyway.
Small update: it’s still happening. And the exact same request is getting a JSON response with error 500 and HTML with a 504 so I think it’s something on your side…
Since these are all time out related maybe processing the response is not 100% completed as well?
Just FYI…
What are those headers for regular requests?
Alex
Additional info: going through my log files I also found empty responses and a couple of
{"code": "timed_out"}
All with status 504.
I’ve long suspected something like this. I get strange errors when I create sync scripts that depend on results from Airtable. I have error handling coded in, however it seems that at times I get a result that isn’t an error yet isn’t expected content. Anyway, just chiming in so that I get pinged on updates to this thread. I guess I need to dial in my response-error-checking some more. Thanks Tuur for digging deeper!
I’ve long suspected something like this. I get strange errors when I create sync scripts that depend on results from Airtable. I have error handling coded in, however it seems that at times I get a result that isn’t an error yet isn’t expected content. Anyway, just chiming in so that I get pinged on updates to this thread. I guess I need to dial in my response-error-checking some more. Thanks Tuur for digging deeper!
My pleasure.
