diff --git a/src/lib.rs b/src/lib.rs index 5129cc3..fe55542 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2333,7 +2333,13 @@ where loop { let now = (*self.time_fn)(); if now > timeout_dt { - break Err(RequestTokenError::Other("Device code expired".to_string())); + break Err(RequestTokenError::ServerResponse( + DeviceCodeErrorResponse::new( + DeviceCodeErrorResponseType::ExpiredToken, + Some(String::from("This device code has expired.")), + None, + ), + )); } match self.process_response(http_client(self.prepare_request()?), interval) { @@ -2372,7 +2378,13 @@ where loop { let now = (*self.time_fn)(); if now > timeout_dt { - break Err(RequestTokenError::Other("Device code expired".to_string())); + break Err(RequestTokenError::ServerResponse( + DeviceCodeErrorResponse::new( + DeviceCodeErrorResponseType::ExpiredToken, + Some(String::from("This device code has expired.")), + None, + ), + )); } match self.process_response(http_client(self.prepare_request()?).await, interval) { diff --git a/src/tests.rs b/src/tests.rs index 84d61c2..fb115eb 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -2203,7 +2203,14 @@ fn test_device_token_authorization_timeout() { .err() .unwrap(); match token { - RequestTokenError::Other(msg) => assert_eq!(msg, "Device code expired"), + RequestTokenError::ServerResponse(msg) => assert_eq!( + msg, + DeviceCodeErrorResponse::new( + DeviceCodeErrorResponseType::ExpiredToken, + Some(String::from("This device code has expired.")), + None, + ) + ), _ => unreachable!("Error should be an expiry"), } }