This document introduces the errors that may occur when integrating Kakao Login and the solutions.
This document is intended for developers integrating Kakao Login into their apps, not for users attempting to log in with Kakao. This page is not a customer support page.
The list shows errors that may occur when getting an authorization code for Kakao Login.
Error Code / Name | Description | Solution |
---|---|---|
KOE001 | You used the wrong request parameters. | Check the parameters in your request and use the right parameters. |
KOE002 | You have sent your request to the wrong URL. | Check the URL you sent the request to and make a request again. |
KOE003 | Due to a temporary error in the Kakao OAuth server, the request is not completed. | Try it again a few seconds later. If the problem persists, contact us through DevTalk. |
KOE004 | Kakao Login is not activated. | Go to [My Application] > [Kakao Login], and set Activation setting to ON. Note: Activate Kakao Login |
KOE005 | A user who is not registered as a team member for a test app tries to log in. | Invite the person as a team member in [My Application] > [Team Management]. Note: Manage team members |
KOE006 | You used an unregistered Redirect URI when requesting an authorization code. | Go to [My Application] > [Kakao Login] and register the Redirect URI. Or use the registered Redirect URI as the value of redirect_uri parameter for requesting an authorization code.Note: Set Redirect URI |
KOE007 | You used an unregistered Logout Redirect URI when requesting logout. | Go to [My Application] > [Kakao Login] > [Advanced] and register the Logout Redirect URI. Or use the registered Logout Redirect URI as the value of logout_redirect_uri parameter for requesting logout.Note: Set Redirect URI |
KOE008 | You used the wrong app key. | Go to [My Application] > [App Keys] and check if the app key you used is correct (One of native app key, REST API key, or JavaScript key). Note: Check your app keys |
KOE023 | JavaScript SDK Login by presenting popup consent screen is not available | Use the Kakao.Auth.authorize function or update the JavaScript SDK to the latest version. |
KOE101 | You used the wrong app key, or the app key has a typo. | Go to [My Application] > [App Keys] and check if the app key you used is correct. Note: Check your app keys |
KOE102 invalid_client |
The channel_public_id parameter is included in your request even though any Kakao Talk Channel is not connected to your app. Required PLUS_FRIENDS_ON_AGREEMENT_SUPPORTED permission |
After connecting a Kakao Talk Channel to your app, make a request again. |
KOE201 invalid_request |
Unsupported response_type is included in the request for getting an authorization code.Unsupported response type: {response_type} |
Check if response_type is set to code . If not, change it to code . |
KOE202 invalid_request |
response_type is set to token . Implicit grant Required OAUTH_IMPLICIT_GRANT_SUPPORTED permission |
Change response_type to code . |
KOE203 invalid_request |
User have not agreed to 'Required consent' item on the Consent screen.All required service terms must be approved. required:{Service Term IDs} agreed:{Service Term IDs} |
If you encounter this error, contact DevTalk. |
KOE204 invalid_request |
Invalid parameters are included in your request. Invalid agreement_code: ${AGREEMENT_CODE} |
Check the valid parameters in REST API > Get authorization code and make a request again with the valid parameters. |
KOE205 invalid_scope |
(A) You used the consent items that are not specified in [My Application] > [Kakao Login] > [Consent Items] as the scope parameters.(B) You passed openid to scope even though you did not enable OIDC. Invalid scope: ${SCOPE} |
(A) Exclude the scopes that are not enabled in [My Application] > [Kakao Login] > [Consent Items] from your request. (B) If you intergrate OpenID Connect (OIDC), activate OIDC, and then add openid to scope when requesting the requesting additional consent API. If you want to apply OAuth, exclude openid from scope . |
KOE207 invalid_request |
Required parameters are missing. | Check the required parameters in REST API, and request again, including the required parameters. |
access_denied | User selected [Cancel] on the Consent screen instead of [Accept and Continue]. User denied access |
Implement the subsequent process invoked when a user cancels the login, such as redirecting the user to the main page. |
access_denied | Users under age 15 can not use the app. Or failed to get parental consent for a user under age 15.Not allowed under age 14 |
Implement the subsequent process, such as redirecting the user to the main page. |
login_required | The request for Auto-login (prompt=none ) failed because a user authentication has not been completed.user authentication required. |
The user must log in with the Kakao Account. |
consent_required | The request for Auto-login (prompt=none ) failed because the authorization server requires user consent but the user did not consent.user consent required. |
The user must consent on the Consent screen when logging with Kakao. |
interaction_required | The request for Auto-login (prompt=none ) failed because the user has not provided user's required personal information.need to collect additional personal information. |
Implement the subsequent process, such as collecting additional user information. |
interaction_required | The request for Auto-login (prompt=none ) failed because the user has not consented to the Kakao Comprehensive Terms and Conditions. have to agree to kakao's terms of service. |
Implement the subsequent process, such as requesting consent to the Kakao Comprehensive Terms and Conditions. |
interaction_required | The request for Auto-login (prompt=none ) failed because the user's account is blocked. account has been restricted. |
The blocked user cannot use the Auto-login function. Request authorization code without passing prompt=none for the blocked user. Then, Kakao shows the blocked user the page indicating the user account is blocked. |
The list shows errors that may occur when getting an access token for Kakao Login.
Error Code / Name | Description | Solution |
---|---|---|
KOE101 invalid_client |
You used the wrong app key, or the app key has a typo. Not exist client_id ${CLIENT_ID} |
Check if you pass the right app key of the app used for Kakao Login when you request an access token. Go to [My Application] > [App Keys] and check if the app key you used is correct. Use 'JavaScript Key' to initialize JavaScript SDK and use 'Native app key' to initialize iOS or Android SDK. Use 'REST API Key' to make a REST API call. Note: Check your app keys |
KOE009 misconfigured |
You requested an access token from the unregistered platform.invalid android_key_hash or ios_bundle_id or web_site_url |
Go to [My Application] > [Platform], and check if the platform (Web, Android, or iOS) is correctly set. Note: Register platforms |
KOE010 invalid_client |
You did not pass client_secret or passed incorrect client_secret when requesting an access token from the app that activates the Client secret feature.Bad client credentials |
If the Client secret feature is activated, you must use the client_secret parameter. Otherwise, you cannot get an access token from the authorization server. Pass the Client secret code created in [My Application] > [Kakao Login] > [Security] as a value of the client_secret parameter. |
KOE114invalid_client |
The value of client_id is different between Get authorization code and Get tokens. |
Use the code value issued with the same app to get tokens. |
KOE303invalid_grant |
You used a different redirect_uri from the one used when requesting an authorization code. Redirect URI mismatch. |
Request an access token by using the same redirect_uri passed when requesting an authorization code. |
KOE310invalid_request unsupported_grant_type |
The value of grant_type is unsupported or missing. |
Request again with the supported value of grant_type . |
KOE319invalid_grant |
You did not pass the refresh token when requesting to refresh tokens.refresh token is blank |
Pass the right refresh token issued when you request to renew tokens as the value of refresh_token . |
KOE320invalid_grant |
You used the same authorization code twice or more, you used the expired authorization code, or the value of the authorization code is empty.authorization code not found for code=${AUTHORIZATION_CODE} |
You must use a new authorization code every time you request an access token. After getting a new authorization code, request an access token with the newly issued authorization code. |
KOE322invalid_grant |
You used an expired refresh token, or the value of refresh_token is emptyexpired_or_invalid_refresh_token |
Get a new access token and a refresh token by using an authorization code. |
invalid_request | You used the wrong request parameters. | Check the parameters in your request and use the right parameters. |
The list shows errors that may occur when getting an ID token information if you implement OpenID Connect for Kakao Login.
Error Code / Name | Description | Solution |
---|---|---|
KOE400 invalid_token |
You did not pass id_token or passed wrong format of id_token when requesting to get an ID token information. invalid id_token format |
Check if the ID token passed in your request exactly matches the ID token issued through getting tokens. |
KOE401 invalid_token |
ID token is not issued from the Kakao authorization server (kauth). invalid id_token issuer |
The ID token must be issued from Kakao authorization server. Check if the value of iss in the JWT payload is https://kauth.kakao.com . |
KOE402 invalid_token |
Failed to validate the ID token due to wrong signature value.invalid id_token |
Check if the ID token passed in your request exactly matches the ID token issued through getting tokens. |
KOE403 invalid_token |
ID token expires. id_token has expired |
Get a new ID token by requesting the Refreshing tokens API. |
The list shows errors that may occur during the login process.
Here are the errors defined in the AuthErrorCause
class and solutions.
Error | Description | Solution |
---|---|---|
InvalidRequest | The API request is not valid. | Check if the parameter you requested is correct by referring to the development guide, and then make a request again with the valid parameters. |
InvalidClient | You used the wrong app key. | Check if you used the correct Native app key to initialize the Android SDK. Ensure that you must use the Native app key. |
InvalidScope | You used the scopes that are not specified in [My Application] > [Kakao Login] > [Consent Items] as the scope parameters. |
Check if you used correct scope ID, or enable the desired scope in [My Application] > [Kakao Login] > [Consent Items]. |
InvalidGrant | Your refresh token has expired, or refresh token does not exist. | Obtain new tokens through the login process. |
Misconfigured | The platform information registered in [My Application] > [Platform] is incorrect. | Check if you registered your app information correctly in [My Application] > [Platform]. Check if the registered key hash values are correct. |
Unauthorized | You have no permission to request the API. | Kakao Login API does not require any permission to call. If you encounter this error, contact us through DevTalk. |
ServerError | Internal server error occurs. | Try it again a few seconds later. If the problem persists, contact us through DevTalk. |
Unknown | Unknown error occurs. | If you encounter this error, contact us through DevTalk. |
Here are the client errors defined in the ClientErrorCause
class, which may occur in the Android SDK.
Error | Description | Solution |
---|---|---|
TokenNotFound | There is no token that can be used to request API. | Obtain tokens through the login process. |
NotSupported | Kakao Talk is not installed or a browser is not available on a user's device to proceed Kakao Login. | Inform a user of the status. It is recommended to implement a process to install Kakao Talk or web browser. |
BadParameter | You request APIs with the wrong parameter. | Check if the parameter you requested is correct by referring to the development guide, and then make a request again with the valid parameters. |
Cancelled | User canceled the login request. | Implement the subsequent process when the user cancels the login, such as redirecting the user to the main page. |
IllegalState | This is an abnormal state. | If you encounter this error, contact us through DevTalk. |
Unknown | Unknown error occurs. | If you encounter this error, contact us through DevTalk. |
Error information and solutions for shipping address are below. Refer to Reference for the errors of Retrieve shipping address API.
Error code | Description |
---|---|
KAE003INVALID_PARAMETER_ERROR |
Invalid parameters are included in the request. Solution: Request with correct parameters. |
KAE102APP_SCOPE_ERROR |
The required consent item is not set in the app. Solution: Set the [Shipping information] consent item in the app by reffering to How to use. |
KAE103PERMISSION_ERROR |
Permission is required. Solution: Request for app permissions to get the permission for [Shipping information]. |
KAE104APP_KEY_TYPE_ERROR |
Requested with the REST API key or the admin key. Solution: Use one of the native app key or the JavaScript key depending on the type of Kakao SDK. |
KAE201AUTH_ERROR |
The access token is not valid. Solution: Reissue the access token and request again. |
KAE202NOT_REGISTERED_USER_ERROR |
The user has not linked to the app. Solution: Request Manual signup API and request again. |
KAE203INVALID_SCOPE_ERROR |
The user exited the shipping address picker during the consent. Solution: Request again or try Request additional consent. |
KAE205LOGIN_REQUIRED_ERROR |
The user's Kakao account has been protected or banned. Solution: Guide the user according to the error code. |
To get the shipping address, the user must consent to the [Shipping information] consent item. If the user did not consent to the [Shipping information], the APIs work as follows.
shipping_addresses_needs_agreement
is true
. Refer to No shipping address in the response.The response of Retrieve shipping address API may not include shipping_addresses
field.
{
"user_id": 143458,
"shipping_addresses_needs_agreement": true
}
In this case, check the value of shipping_addresses_needs_agreement
field and take actions below.
true
: The user did not consent to the [Shipping information] consent item. Refer to How to check which scope required consent.false
: Shipping addresses are not available.