> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# File upload troubleshooting guide

> Common issues and self-troubleshooting steps for file upload failures, covering submission errors, OSS upload errors, and the OSS public domain appendix.

This guide explains how to troubleshoot common issues encountered during file uploads.

## File submission failed

File upload consists of three steps. For details, see [Obtain file upload information](/open/development/obtain-file-upload-informations).

1. Obtain file upload information.
2. Upload the file to OSS over HTTP.
3. Submit the file.

### Confirm that step 2 (uploading the file to OSS) returns 200.

## Failed to upload file to OSS

Check your code. Replace `<authorization>`, `<x-oss-date>`, and `<url>` with the values returned by the file upload information API in step 1. Replace `a.txt` with an existing local file, then run the following command:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -v -T a.txt \
--header "Authorization: <authorization>" \
--header "x-oss-date: <x-oss-date>" \
--url "<url>"
```

* If curl returns the `RequestTimeTooSkewed` error, the upload information has expired. Obtain the file upload information again.
* If curl returns 200, the issue is in your code. The documentation provides demos in the corresponding languages. Refer to the relevant sample to troubleshoot your code.
* If your code upload returns `SignatureDoesNotMatch`, the HTTP request headers most likely include an extra `contentType`. Set it to empty explicitly. (You can print the request headers to inspect the `contentType` value.)
* If curl does not return 200:

  * If a domain resolution failure or connection failure is reported, troubleshoot as follows:

    * `ping <domain or IP>`
    * `telnet <domain or IP> 443`
    * Connect to a mobile hotspot and run ping and telnet, or switch to another network and try again.
    * Disable the firewall on your computer, then run ping and telnet.
    * Contact your IT team to allowlist the OSS public domains. See **Appendix I** at the bottom of this document for the domain list.
    * For dedicated storage, contact the dedicated storage operations team to investigate network connectivity issues.

## Appendix I: OSS public domains

* sz.trans.dingtalk.io
* sh.trans.dingtalk.io
* zjk.trans.dingtalk.io
* lippi-space-zjk.oss-cn-zhangjiakou.aliyuncs.com
* lippi-space-sh.oss-cn-shanghai.aliyuncs.com
* lippi-space-sz.oss-cn-shenzhen.aliyuncs.com
* cdn-zjk-trans.dingtalk.io
* cdn-sh-trans.dingtalk.io
* cdn-sz-trans.dingtalk.io
