google-gemini / generative-ai-android

The official Android library for the Google Gemini API
https://ai.google.dev/gemini-api/docs/get-started/tutorial?lang=android
Apache License 2.0
737 stars 163 forks source link

Gemini API returns 503 error with MissingFieldException #220

Open surajsahani opened 1 week ago

surajsahani commented 1 week ago

Description of the bug:

When interacting with the Gemini API, the following error message is received in the log:

D  Error message received: Unexpected Response:
{
  "error": {
    "code": 503,
    "message": "The model is overloaded. Please try again later.",
    "status": "UNAVAILABLE"
  }
}
kotlinx.serialization.MissingFieldException: Field 'details' is required for type with serial name 'com.google.ai.client.generativeai.common.server.GRpcError', but it was missing at path: $.error

This indicates that the API is overloaded, but it also throws a MissingFieldException related to the 'details' field when parsing the response.

Actual vs expected behavior:

Actual: The response includes a 503 error code with the message "The model is overloaded." Additionally, a MissingFieldException is thrown due to the missing 'details' field. Expected: The API should either provide a valid response with the necessary 'details' field or handle missing fields gracefully without throwing an exception.

Any other information you'd like to share?

This error occurs during normal API interaction when the model is under heavy load. It would be helpful to have the API gracefully handle missing fields in error responses to prevent application crashes.

adrdev10 commented 1 week ago

I think adding the missing field will give some inshights to the error that's happening in Google's side. It's a weekend so I doubt that that the team will be able to take a look at it today or tomorrow.

This is the error I'm also getting

{
"error": {
    "code": 503,
    "message": "The model is overloaded. Please try again later.",
    "status": "UNAVAILABLE"
    }
}
kotlinx.serialization.MissingFieldException: Field 'details' is required for type with serial name 'com.google.ai.client.generativeai.common.server.GRpcError', but it was missing at path: $.error
gmKeshari commented 4 days ago

Hi @surajsahani,

Were you getting the errors earlier also?? I mean whether it was working earlier and suddenly you started seeing these errors or from very beginning you were getting these errors?

surajsahani commented 4 days ago

This issue started suddenly from last 4-5 days @gmKeshari

surajsahani commented 4 days ago

I think adding the missing field will give some inshights to the error that's happening in Google's side. It's a weekend so I doubt that that the team will be able to take a look at it today or tomorrow.

This is the error I'm also getting

{
"error": {
    "code": 503,
    "message": "The model is overloaded. Please try again later.",
    "status": "UNAVAILABLE"
    }
}
kotlinx.serialization.MissingFieldException: Field 'details' is required for type with serial name 'com.google.ai.client.generativeai.common.server.GRpcError', but it was missing at path: $.error

+1 This has been happening from last week, when new gemini model drop for Iphone

gmKeshari commented 4 days ago

Hey @surajsahani,

Due to overload this issue was reported by many users last week. Our team is working to fix this. You can consider this as a temporary issue.

Temporarily switch to another model (e.g. from Gemini 1.5 Pro to Gemini 1.5 Flash) and see if it works. Or wait a bit and retry your request.

surajsahani commented 2 days ago

Hey @surajsahani,

Due to overload this issue was reported by many users last week. Our team is working to fix this. You can consider this as a temporary issue.

Temporarily switch to another model (e.g. from Gemini 1.5 Pro to Gemini 1.5 Flash) and see if it works. Or wait a bit and retry your request.

I've tried both Gemini 1.5 Flash and Pro, but I'm still facing model overload issues. It seems 1.5 Pro can't handle more than 2 API calls concurrently. Any suggestions or workarounds?