Part 5
Stuck?
Find it here
Organized by symptom. Most problems come down to a few things to check. Work down the list and you will narrow the cause quickly.
Start here
Whatever the symptom, checking these four first resolves a good proportion of cases.
Is a payment method registered?
Even with credits remaining, calls return errors if no payment method is registered. Check under Dashboard → Billing.
Is the model name within the covered set?
It must be one of solar-pro2, solar-pro3, solar-pro4, or document-parse. Reaching for something else, such as solar-mini, is a common cause.
solar-pro2 stops working after mid-October 2026, when support ends. Change it to solar-pro4.
Is the address correct?
Solar uses /v1/chat/completions; Document Parse uses /v1/document-digitization. Each product differs.
Is Bearer in front of your key?
It must read Authorization: Bearer up_.... This is the single most common omission.
401 is authentication, 400 is the request itself, 429 is the rate limit. Check the code first and you will know which section to read.
5.1No response comes back
Q1I have credits but calls return an error
Usually this means no payment method has been registered.
Go to console.upstage.ai → Dashboard → Billing, register a card, and try again. While you have credits, those are used first.
Q2I get a 401 or Unauthorized
Your key is not being passed correctly. Check in this order.
- Confirm
Bearercomes before the key. - Check that no spaces or quotation marks were copied with the key.
- Confirm the key starts with
up_. - Create a fresh key in the console and swap it in.
Q3It only fails to find my key in Colab
Check your Colab secret settings.
- Under the key (🔑) icon on the left, confirm the name is exactly
UPSTAGE_API_KEY, including case and underscores. - Confirm notebook access is turned on for that secret.
- After turning it on, re-run your first cell for it to take effect.
Q4I cannot get past sign-up or sign-in
A VPN or ad blocker sometimes interferes. Turn both off and try again.
If you are on an institutional network, check the firewall policy as well.
5.2It stops partway
Q5I get a 429
You have gone over the rate limit. This is not a failure. Tier 0 allows 100 requests and 50,000 tokens per minute.
- Wait a few seconds instead of resending immediately. If it repeats, wait longer.
- Reduce how many run at the same time.
- In a classroom, split into groups and run in turns.
The 429 response includes X-Upstage-RateLimit-Retry-After-Requests. You may retry after that time.
Q6Batches of documents fail partway through
Document Parse allows 1 request per second with the synchronous API. Sending them together exceeds that.
Leave about a second between requests, and record how far you got so you can resume from the failures. See the loop example in Part 3.
Q7Most calls fail when my class runs at once
With 100 requests per minute, 30 students running several times each fills the limit quickly.
- Split into groups and run with a time gap.
- Running it once yourself before class gives you a feel for the pace.
- If students use separate accounts, the limit applies per account.
Q8Can I raise the limit?
Purchasing additional credits raises your tier and the limits with it. You can check the limits for your new tier under Billing → Commitment → Rate limit in the console.
For institution-scale needs, contact Upstage support.
5.3Model issues
Q9I get an unsupported model error
There are three possible causes.
First, you requested a model outside the covered set. The covered language models are solar-pro2, solar-pro3, and solar-pro4. Calling anything else, such as solar-mini, gives you this error.
Second, the address is wrong. Each product has its own address. The message points at the model, but the real cause is often the URL.
Third, you called solar-pro2 after mid-October 2026. Support ends then and the model can no longer be called. Change it to solar-pro4.
Q10I want to move code from Solar Pro 2 to Pro 4
Change only the model name. Usage, speed, and pricing are the same, so nothing else needs to change.
Do it before mid-October 2026. Solar Pro 2 support ends then, and after that the model cannot be called at all. Changing it now is easier than fixing it under pressure later.
Wording and structure may shift slightly, so if you have fixed output formats it is worth checking the results once.
Q10-1The calls succeed but my credits keep dropping
You are most likely calling a model the program does not cover. It covers exactly four: solar-pro2, solar-pro3, solar-pro4, and document-parse.
The easily confused ones — information-extract, document-classify, and the embedding models (solar-embedding-2-query, solar-embedding-2-passage) — are all separately billed. They work fine, so there is no error; the credits just quietly go down.
Worth checking especially if a coding agent wrote the code. Asked to extract fields, agents often reach for information-extract. See Part 3 · What is outside the program for how to do the same job within the covered set.
Q10-2Reading the Document Parse response gives a missing-key error
This happens when a Solar example is lifted as-is. The two products have different response shapes.
Solar returns text at choices[0].message.content, but a Document Parse response has no choices at all. Read content.html, content.markdown, or elements[] instead.
The usage unit differs too: usage.total_tokens for Solar, usage.pages for Document Parse. There is a comparison table in Part 3 · Working with documents.
Q11The same question gives slightly different answers
That is the nature of language models. To make results more consistent:
- Fix the output format. The approach in Part 3 pins field names and types.
- Fix the allowed values. Wrapping verdicts in an
enumrestricts the answer to your list. - State criteria as numbers and conditions. "Hold if over 100,000" is far more stable than "judge appropriately".
5.4Documents do not read well
Q12The result is empty or the characters look wrong
Check the image quality and the processing mode.
- Switch OCR to Force and run again. This helps most with scans and photos.
- Confirm the document is at least 640 pixels wide.
- Confirm the smallest text is at least 2.5% of the image height.
- If tables and figures are complex, try Enhanced mode.
Q13The file will not upload
Check these three things.
- Format: JPEG · PNG · BMP · PDF · TIFF · HEIC · DOCX · PPTX · XLSX · HWP · HWPX are supported.
- Size: must be 50MB or less.
- Filename: very long names can cause problems, so try shortening it.
Q14The end of a long document was not processed
The synchronous API processes up to 100 pages per file; anything beyond that is not included.
Split the document, or use the asynchronous API which handles up to 1,000 pages.
Q15Tables do not come out properly
If tables continue across pages, turn on Merge Multipage Tables.
If numbers inside charts matter, check Chart recognition as well.
You can see the table structure in content.html.
5.5The output is not right
Q16The answers are generic
Usually this means you did not include the material the answer should be based on.
Put the document or rules into the prompt. Adding "if it is not in this material, say 'not found in the material' rather than guessing" makes a large difference.
Q17Extracted values keep coming back empty
Check two things.
First, whether the information is actually in the document. If it is not there, an empty value is correct.
Second, whether your description is specific enough. "The final payment amount including tax" finds the value far better than "amount". Saying where in the document it appears helps too.
Q18Parsing the JSON throws an error
Check finish_reason before parsing.
stop means it completed. length means it hit the token limit and is cut off mid-object, so it cannot be parsed. Increase max_tokens or retry.
Also confirm you set strict to true and additionalProperties to false.
Q19It states things that are not true
Ask about facts the model does not have and it may produce something plausible but wrong.
- Include the source material in your request.
- Require the basis for the answer — a page number or quotation — so it is easy to check.
- Tell it to say when it does not know.
- Have a person verify important values such as amounts, dates, and names against the original.
Q20I defined a tool but the model never calls it
Usually the description is too vague. The model decides when to call a tool from its description.
Write what the tool is for: "Look up budget execution status by department and year" rather than "data lookup".
Note that not calling a tool for something like a greeting is correct behaviour. Test with a question that genuinely needs the tool.
5.6If none of this helps
When you ask for help, including the details below makes it much faster to find the cause.
# Problem report
## What I was trying to do
-
## How I ran it
- Model name used:
- Address the request went to:
- Studio / code / Playground:
## What came back
- Status code (401 / 400 / 429 etc.):
- Full error message:
## Already checked
- [ ] Payment method registered
- [ ] Model name within the covered set
- [ ] Correct address
- [ ] Bearer prefix
## Since when
- From the start / it was working and then stopped:
- The last thing I changed:
Error messages look long, but the actual cause is usually on the last line. Searching for that line, or including it when you ask for help, gets you a long way.
Addresses, request formats, response fields, and limits are all documented at Upstage's official docs. Per-topic shortcuts for everything in this playbook are collected in Part 3 · Official documentation.
If you plan to ask a coding agent, have it read https://console.upstage.ai/api/docs/for-agents/raw first — the answers get far more accurate. See Part 3 · Briefing a coding agent.
For questions about the program and your credits, use the contact in your approval email. For questions about the products themselves, contact Upstage support.
Where to go next
Finally, please look through how to handle material safely — especially if your documents contain personal data.