The keys in the info dictionary need to be from this set published in the NSError.h header:

// Keys in userInfo, for subsystems wishing to provide their error messages up-front.
FOUNDATION_EXPORT NSString *const NSLocalizedDescriptionKey;  // NSString
FOUNDATION_EXPORT NSString *const NSLocalizedFailureReasonErrorKey     ;  // NSString
FOUNDATION_EXPORT NSString *const NSLocalizedRecoverySuggestionErrorKey;  // NSString
FOUNDATION_EXPORT NSString *const NSLocalizedRecoveryOptionsErrorKey   ;  // NSArray of NSStrings
FOUNDATION_EXPORT NSString *const NSRecoveryAttempterErrorKey;  // Instance of a subclass of NSObject that conforms to the NSErrorRecoveryAttempting informal protocol
FOUNDATION_EXPORT NSString *const NSHelpAnchorErrorKey