Observed behaviour
The parser for ISO8601 is overly restrictive - it only allows "Z" as the zone designator but not "+00:00". While I can understand not wanting to support iso8601 timestamp in non-UTC timezones due to added complexity, it would be good to at least support both ways of specifying that the timestamp is in UTC that ISO8601 allows (since it's just a matter of expanding the regex for the zone designator part to be
(Z|\+00:00) rather than just Z). Especially since some programming languages may choose to output ISO8601 timestamps with +00:00 rather than Z (as is the case in Python's datetime.datetime.isoformat(), for example).
Also, limitations of what can be parsed should be documented.Reproduction steps
- Make an API request to any endpoint requring ISO8601 timestamp with a "+00:00" instead of "Z" use as the zone designator, e.g. "2026-09-07T18:33:12.120000+00:00"
- See "The provided value is in an invalid format" error returned by the API.
PATCH /guilds/{guild.id}/members/{member.id}
{"communication_disabled_until":"2026-09-07T18:33:12.120000+00:00"}
{
"code" : "INVALID_FORM_BODY" ,
"message" : "Invalid form body." ,
"errors" : [
{
"path" : "communication_disabled_until" ,
"message" : "The provided value is in an invalid format." ,
"code" : "INVALID_FORMAT"
}
]
}Build information
This is an API issue, so not relevant.
Platform
API
Evidence
Everything relevant has already been presented above.