A number so nice, you used it twice. There’s already an invoice [docnumber]. You can use it again, but it resets your invoice numbers (starting from [docnumber]). Do you still want to use this invoice number?
We can use this error pattern in various instances when users enter a number that they (or the system) already used. It has just the right amounts of helpfulness and delight.
Not so good
Invoice [docnumber] has already been taken. Are you sure you want to continue with that number? It will reset your invoice numbers (starting from [docnumber]).
Try to avoid the "Are you sure" construction in error messages. It makes it sound as if we're questioning the user's intelligence instead of guiding them to make the right choices.
We don't use exclamations in copy. And we generally don't say we're sorry. A machine is delivering this message, and our users can see through the false empathy. As for the "asynchronous error" copy, we try really hard to keep our content conversational. Unless you're a developer, you probably haven't used the word asynchronous with your friends in the past two weeks.