Lawton Campbell.8517:

We found some issues with /v2/characters that necessitated temporarily disabling the /v2/characters endpoints. I’m not sure when we’ll have it back up, but it likely won’t be before the next release.

Sorry

Miazara.8164:

Ermm next major patch? next hotfix patch? next api patch/update/release? At what possible time frame are we looking at this?

Redenaz.8631:

“Next release” as in next Tuesday, next month, or next season?

Sad face! Thanks for the heads up, though.

Nekres.1038:

Tuesday probably, but its true that it could mean anything between big or small release. Clarification would be welcome!

Vegeta.2563:

We found some issues with /v2/characters that necessitated temporarily disabling the /v2/characters endpoints. I’m not sure when we’ll have it back up, but it likely won’t be before the next release.

Sorry

Do you mean next patch, or next Quarter Release?

A lot of people depend on the Character API when it comes to tracking down where their items went, along with different stats they could check into while not in game.

Atenhara.2947:

Til that there is a way to view your char stats when offline.

Lawton Campbell.8517:

By “next release” I mean “the next time we do a patch that isn’t a hotfix”.

Sorry about the ambiguity.

AZY.8352:

Am I a “v2” character? I haven’t been able to access my API all day…

Lawton Campbell.8517:

Am I a “v2” character? I haven’t been able to access my API all day…

“v2” refers to the API version — not the character version. The only way to access character data is via the “/v2/characters” API endpoint, which is disabled.

Effectively, all API access to all character data is turned off until I can resolve the issue.

Southghost.9581:

If anybody knows when this is resolved, please post an update.

Pifil.5193:

I think Lawton will let you know when it’s back up. Lawton is a Trojan worker, and I for one am hugely impressed by his dedication, output and communication.

Thanks Lawton you are like unto a coding god!

Redenaz.8631:

By “next release” I mean “the next time we do a patch that isn’t a hotfix”.

Sorry about the ambiguity.

Okay, great! Things get broken, but it’s good to hear this wasn’t shattered into a million pieces somehow.

Fury.6408:

Thank you for posting this. It has been driving me nuts =P

Behellagh.1468:

You don’t know what you got until it’s gone.

TPMN.1483:

Did this get fixed with the latest patch?
Are we waiting for normal patch Tue for the fix if above is No?

Lawton Campbell.8517:

Did this get fixed with the latest patch?
Are we waiting for normal patch Tue for the fix if above is No?

No, it’s not yet fixed.

We tracked down the issue today and the current plan is to get it hotfixed tomorrow evening, but can’t make any promises. Sorry again about the downtime, software is hard :<

Behellagh.1468:

I know … heisenbugs.

DeviantShark.6548:

software is hard

Oh you!
(Still true)

AZY.8352:

Wow, speedy turnaround! Great work Lawton :-)

Vegeta.2563:

Did this get fixed with the latest patch?
Are we waiting for normal patch Tue for the fix if above is No?

software is hard :<

Isn’t that just hardware?

Lawton Campbell.8517:

Fix went out with today’s hotfix and works correctly; just turned the /v2/characters endpoint back on.

Redenaz.8631:

Awesome! Thanks!

Behellagh.1468:

Yay! Thank you Thank you Thank you

AZY.8352:

Working nicely – thank you!

Bormotun.9568:

Thanks! Great improvements are implemented.

Nekres.1038:

Uhm, does the data update somewhat slower? My deaths went from 5 minutes intervall updates to almost 20 minutes!

Lawton Campbell.8517:

Uhm, does the data update somewhat slower? My deaths went from 5 minutes intervall updates to almost 20 minutes!

Should still be ~5 minutes. There’s an edge case where the map instance server hasn’t persisted character data to the database (IIRC that’s on a 5 minute timer, or when you switch maps or sell something on the trading post etc) and that stale data gets pulled in and cached by the API backend for another 5 minutes. So to the best of my knowledge, the maximum staleness should be around ~10 minutes (though only under special circumstances).

It’s altogether possible there’s a bug somewhere causing data to be cached too long. If the issue doesn’t clear up, consider opening an issue on github (or just posting again here).

bobsort.4097:

Isn’t get request supposed to work like following on characters end point?

I’m trying

https://api.guildwars2.com/v2/characters/?access_token=[InsertMyKey]

and it returns

{"text":“endpoint requires authentication”}

It seems last “/” causes a redirect which removes the key from request.

stress level zero.4907:

Has the false negative bug been fixed where the api would return 40x responses for valid tokens on the characters endpoint?

Lawton Campbell.8517:

It seems last “/” causes a redirect which removes the key from request.

That’s a bug; here’s a tracking issue. It’s probably all the authenticated endpoints, not just /v2/characters. I can probably have that fixed in a week or two, in the meanwhile I recommend not sending the trailing slash in requests.

Has the false negative bug been fixed where the api would return 40x responses for valid tokens on the characters endpoint?

I found and fixed a bug awhile back that would cause issues like that for the first request once/day or so (when the session created for the token would expire). I haven’t personally seen it happening anymore, but let me know if you’re still seeing it and I’ll investigate some more.

stress level zero.4907:

I found and fixed a bug awhile back that would cause issues like that for the first request once/day or so (when the session created for the token would expire). I haven’t personally seen it happening anymore, but let me know if you’re still seeing it and I’ll investigate some more.

Hey Lawton, this happened today.

Received an unexpected 400 response:

http://i.imgur.com/umE1OXw.png

Thoughts?

https://github.com/madou/armory-back/blob/master/gw2-fetch/src/controllers/ping-controller.js#L95

I guess I’ll disable deleting the token for now.

Lawton Campbell.8517:

I found and fixed a bug awhile back that would cause issues like that for the first request once/day or so (when the session created for the token would expire). I haven’t personally seen it happening anymore, but let me know if you’re still seeing it and I’ll investigate some more.

Hey Lawton, this happened today.

Received an unexpected 400 response:

http://i.imgur.com/umE1OXw.png

Thoughts?

https://github.com/madou/armory-back/blob/master/gw2-fetch/src/controllers/ping-controller.js#L95

I guess I’ll disable deleting the token for now.

Actually, I think we might have done a server deploy around that time — one of the backend servers the API talks to was timing out over two windows last night. Do you happen to have the error text returned by the server? There’s a lot of reasons a key can be invalid (and they all return unique error strings).

stress level zero.4907:

Actually, I think we might have done a server deploy around that time — one of the backend servers the API talks to was timing out over two windows last night. Do you happen to have the error text returned by the server? There’s a lot of reasons a key can be invalid (and they all return unique error strings).

No I don’t have the error message unfortunately (though I’ll add it to the logs now). Do you have a potential list of messages I should target to ensure I remove a token when it has actually been removed by a user in the AN application page?

Also, any reason why it wouldn’t return a 500 for cases like this (can’t reach an internal server, etc)?

As always thanks for the speedy replies.

Lawton Campbell.8517:

The non-transient errors are supposed to be “invalid key” (key doesn’t exist), “banned key” (we’ve blacklisted the key on our side) or “broken key” (something horrible has happened).

Looking at the code, there may be an issue where “invalid key” is incorrectly returned during a temporary failure — need to root around in some code to check what situations can cause that.

In any case, this is definitely not documented well and we really should be returning 5xx responses for transient failures. I’ve created a tracking issue for both the audit and better docs; I would keep seemingly broken API keys around until this gets resolved. Sorry about the hassle

stress level zero.4907:

No worries, thanks Lawton!