Errors
At some point your application will need to handle errors returned from the API. Below
are the details of how we structure our error responses and the conventions we use.
We have tried to provide a simple set of errors that can be handled easily whilst allowing
some endpoints to also specify more granular error codes. These enable applications to handle
different error cases gracefully depending on context to provide the best user experience
possible in each case.
HTTP Codes
The API will return one of the below HTTP status codes along with the JSON error response.
Your app should detect these and act accordingly.
- 200 — Request was successful
- 400 — Request failed due to client error, e.g. validation failed or User not found
- 429 — Rate limit reached or service overloaded see Rate Limits
- 500 — Our servers encountered an internal error, try again
- 503 — Our servers are currently unavailable, try again later. This is normally due to planned or emergency maintenance.
We suggest that your client treats anything that is >= 400 as an error.
Note: If you receive a 500 error it is reasonable for your client to retry that request for a
maximum of three retires. We allow for a certain amount of failure within our cluster so retrying is expected.
JSON Error Format
In addition to the HTTP status, the response body will also contain
a JSON error structure giving more details about the error.
JSON Error Keys
- error — The error type
-
error_description — The error message.
You should NOT parse this as it may change, use error or error_code
for conditional logic within your app -
error_details — (Optional) For validation errors,
this will be a key/value map containing error information for each field - error_code — (Optional) An additional endpoint specific error code
Example Error
{
"error": "invalid_request",
"error_description": "Request field validation failed.",
"error_details": {
"username": "username is required"
}
}
Error Types
The error key in the JSON error will be one of the following strings.
- invalid_request — General error
- unauthorized — Access denied to endpoint or one of its resources
- unverified_account — Email address must be verified to access endpoint
- server_error — Server error, try again later
- version_error — The requested version does not exist
Note: some older endpoints do use additional error strings, these will be deprecated and slowly
replaced over time. You can find more information about any differences on the specific endpoints documentation.
Additional Error Codes
Some endpoints may provide additional error codes so your application
can provide fine grained handling of the error states. Each endpoint
will define any additional codes in its documentation, all codes start from
zero and are specific to that particular endpoint.
Example Error With Additional Code
{
"error": "invalid_request",
"error_description": "User not found",
"error_code": 0
}
403 Errors
If you recieve 403 errors that contain an HTML response rather than JSON, please ensure your client
is sending a User Agent header and using HTTP compression for the request, we reject any requests not
meeting this requirement.
Rate Limits
Currently we do not operate a fixed request limit for a client, instead we have adaptive rate limiting,
allowing short bursts of activity but preventing clients from making requests at a rate that will affect
other users or our API’s stability.
When a client triggers the adaptive rate limit we will return a 429
HTTP status. The client should handle this error and treat it as a request to slow
down its request rate. You may also recieve rate errors if our backend
systems are overloaded and cannot accept anymore requests, again when this happens clients
should back off their requests for a period.
The client must choose how to handle rate errors, it may be appropriate to show an error message to
the user suggesting that the service is temporarily unavailable.
In general, regardless of whether the client automatically retries requests or relies on user re-trying the action,
the client should keep track of these failures and implement an exponential backoff. For example, you might retry
after 1 second. If that still returns 429, then you should wait 2 seconds before the next request and then 4 etc.
If the client keeps on issuing requests at the same or even a lower fixed rate, it’s likely that it will take
much longer to get back to a state where your requests are not limited.
Migration
If your client does not include the major version (E.g. /v1/) in the URI of the endpoint,
your client will be automatically locked to V1.0
and the API will return legacy (pre versioning May 2014) errors. These errors will be marked as deprecated
in the documentation for the endpoint.
Go to DeviantArt
403 ERROR-The request could not be satisfied.
I am plagued by near-constant issues with DA now for months. I have no idea how to fix this but the staff was very little help when I opened a ticket. I was told it was not on their end and it was something to do with my computer or internet. I’m having this issue on every device, from all three people living in my home. It takes literal minutes of clicking around for this to happen and it takes about 5 minutes until it will go away when I refresh. The website is basically unusable like this and I moderate a fairly big group and it makes it impossible to do my job. Help! Please! I really appreciate it.
403 ERROR
The request could not be satisfied.
Request blocked. We can’t connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
Generated by cloudfront (CloudFront) Request ID: x5XG4zxJDO571fX5qhEqNnBfNOfz6bO5ri8BaUQ6aHZCtK3CxAdnFw==
DeviantArt is an online art community with artwork, videography and photography.
On the web page, it allows you to download paid or free works digitally.
DeviantArt users who want to access the page encounter “404 Error“, “403 Error” and “The request could not be satisfied” errors.
For DeviantArt users who encounter the error, we will provide information on how to fix the issue in this guide.
- What is 403 Error on DeviantArt?
- How To Fix “403 Error” on DeviantArt
- Fix 1: Check Server
- Fix 2: Clear Browser Cache
- Fix 3: Make a VPN Connection
We can see that a circumstance brought on by the server crashing or undergoing maintenance could be the cause of your encountering a “403 Error” or “404 Error.”
If the server is not under maintenance or has not crashed, we may also encounter such an error due to a browser cache issue.
If we think there is no problem with browser cache, we can perform vpn connection assuming DeviantArt has country restriction.
How To Fix “403 Error” on DeviantArt
Let’s provide you with information on how to resolve the mistake you find in this title.
Fix 1: Check Server
These connection problems could be brought on by web server crashes or maintenance.
To monitor maintenance or crash reports of the web server, we can use the DownDetector or Twitter platforms.
Click to Check Server with DownDetector
Click to Follow DeviantArt on Twitter
Fix 2: Clear Browser Cache
Some problems with the DeviantArt cache can cause us to encounter various errors like this.
All we need to do to fix the cache issue is to clear the DeviantArt cache files.
You can follow the below step to clear cache files.
- Access the DeviantArt site.
- Right click the site and click “Inspect“.
- Then select “Application“>”Storage“.
- Scroll down the screen and click the “Clear site data” button.
After this process, refresh the site and check if the problem persists.
Fix 3: Make a VPN Connection
As we said above, you may encounter various errors like this if your country has been blocked by DeviantArt or your ip address has been blocked by artificial intelligence.
We can eliminate the problem by performing a vpn connection for us to unblock it.
You can follow the step below to make the VPN connection.
First get any vpn program or plugin.
If you are using the Chrome browser, you can install the extension by clicking the link we will leave below.
Free Download Vpn Extension for Google Chrome
Refresh the page and check after the VPN connection is provided.
Looks like DeviantArt throws 403 errors after a certain number of files are ripped. I added an extra-long sleep timer so the 403 errors shouldn’t be a problem… but now it takes a really long time to rip a user’s pictures (like 2-3 seconds per rip).
Also, what does the Deviant Art ripper rip now, since I know there have been a few fixes along the way?
It now rips the image descriptions which are saved to a .txt
file.
Can I just put the user’s home page to rip? Or do I have to go to their work section or add their individual album urls each time?
You can go to their «all» page (/gallery/?catpath=/
) but I made a change so if you type http://username.deviantart.com
it auto-completes to http://username.deviantart.com/gallery/?catpath=/
, so you just need the username.deviantart.com and it should get all of their deviations.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
- Pick a username
- Email Address
- Password
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account