If you ever come across errors 1092, 1387, or 1633, you need to look at the restriction codes to figure out what the problems are. Basically these codes are telling you, "We can't fully describe the problem with a single error code so we provided extra information."
Error codes are limited by the fact that there can be only one of them when something goes wrong. For cases where multiple things go wrong, extra data is contained in the restriction codes.
This mechanism comes in handy when an operation is being done on multiple objects at once or multiple things can go wrong. That way everything can be presented to the user at once instead of making them fix things one at a time.
As a programmer, you probably just want some code that you can copy and paste into your project. So here you go. As always, I'm eager to please. If the Exception is coming from the vault server, the following function will return both the Vault server error code and any restriction codes.
// for my C# brethren
' VB goodness