Saw this in another thread. Was there a thread in API Announcements I missed about it?
Regardless, it's awesome and I'd love to make sure my client handles and displays these appropriately. Is there an easy way to generate some subproblem errors with Pebble or Staging?
There wasn’t a post in API Announcements. I think it didn’t occur to us to make one since it’s a backwards-compatible change, but it probably does make sense to let everyone know it’s available!
The easiest way to generate subproblems on staging is to submit an order that has some valid identifiers and some invalid ones (basically anything that’s not a domain name). Pebble doesn’t yet support subproblems; we should add that.
You're totally correct I filed a Boulder issue with more details, but there is definitely a bug and I apologize! I'll aim to get that fixed for the next release.
This is fixed in Boulder as of 5a1c18d. It'll go to staging and prod on the usual release schedule. If all goes according to plan that would mean it will be fixed in staging with the June 25th update and in prod on June 27th.
I'm +1 for writing an API announcement. Great idea. I can volunteer to do that. Given we have a bug in the live implementation I'm going to delay posting it until after the 25th
Confirmed staging is now properly sending subproblems in error responses. It appears to include them even if there’s only one identifier and one problem.
For instance, sending an order with the following payload:
{
"type": "urn:ietf:params:acme:error:rejectedIdentifier",
"detail": "Error creating new order :: Invalid character in DNS name",
"status": 400,
"subproblems": [
{
"type": "malformed",
"detail": "Error creating new order :: Invalid character in DNS name",
"status": 400,
"Identifier": {
"type": "dns",
"value": "_example.org"
}
}
]
}
Thanks for the report @rmbolger, this is fixed in 2d1a0d8 and will hit staging on July 2nd. We're not doing a production release this week so the buggy subproblems currently in staging won't be promoted to prod today.
Confirmed no more subproblems on single error responses. Same payload as before now returns:
{
"type": "urn:ietf:params:acme:error:malformed",
"detail": "Error creating new order :: Invalid character in DNS name",
"status": 400
}
I hate to continue being a bother, but the other thing I notice is that when they payload contains multiple identifiers and only one of them has a problem, the error detail doesn’t indicate which one had the problem. So the error response above is identical if I change the payload to this: