This topic describes common error codes for Tunnel, their causes, and solutions.
The following are common error codes for Tunnel:
-
Error message: ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist
-
Error message: ErrorCode=Local Error, Failed to create download session with Tunnel endpoint
-
Error message: ErrorCode=NoSuchProject, ErrorMessage=The specified project name does not exist
-
Error message: ErrorCode=InvalidBlockID, ErrorMessage=The specified block id is not valid.xxxx
-
Error message: ErrorCode=StatusConflict, ErrorMessage=The download session is expired
-
Error message: ErrorCode=InvalidRowRange, ErrorMessage=The specified row range is not valid
-
Error message: ErrorCode=StatusConflict, ErrorMessage=The upload|download session is expired
-
Error message: ErrorCode=FlowExceeded, ErrorMessage=Your flow quota is exceeded
-
Error message: ErrorMessage=java.net.SocketException: Connection reset
-
Error message: ErrorCode=InstanceNotTerminated, ErrorMessage=The instance has not terminated
ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist
-
Cause
The destination partition does not exist.
-
Solution
Run the
show partitions <table_name>;command to verify the partition name, or create a new partition for the destination table. For more information about how to create a partition, see Add a partition.
ErrorCode=Unauthorized, ErrorMessage=The request authorization header is invalid or missing
-
Cause
Identity verification failed because the AccessKey is incorrect.
-
Solution
Navigate to the AccessKey Management page to obtain the correct AccessKey. If the issue persists after you verify the AccessKey, join the DingTalk group for assistance and provide the logs from a successful upload or download that used the same AccessKey.
ErrorCode=Local Error, Failed to create download session with Tunnel endpoint
-
Cause
-
Cause 1: The network is unreachable.
-
Cause 2: The table or partition contains too many small files.
-
-
Solution
-
Solution for Cause 1:
On the device where the error occurred, run the
curlcommand to connect to the Tunnel endpoint that is specified in the error message and verify access.-
If the endpoint is reachable, the following response is returned. In this case, skip this step and proceed with the solution for Cause 2.
{ "Code": "Unauthorized", "Message": "The request authorization header is invalid or missing."} -
If the endpoint is not reachable, check and correct the Tunnel endpoint configuration.
Tunnel endpoints for the public network end with aliyun.com. Tunnel endpoints for the internal network or a VPC network end with aliyun-inc.com. Configure the correct Tunnel endpoint based on your business requirements. For more information about Tunnel endpoints, see Endpoints.
NoteConnectivity may fail if you try to access an internal or VPC network endpoint from the public network, or vice versa.
-
-
Solution for Cause 2:
Run the
desc extendedcommand in the MaxCompute client or DataWorks client to view the number of files in the table or partition.desc extended <table_name> [partition(partition_spec)];The FileNum parameter in the command output indicates the number of files. If the number of files exceeds 1,000, you must merge the small files.
If you use Instance Tunnel to download data, the number of files in the table also affects the download. If there are too many files, a timeout error may occur. If you do not need to download the SQL query results, you can disable Instance Tunnel. The SQL execution is not affected by the Limit parameter and returns all data from the table. To accelerate queries, you can add a WHERE clause, such as
where xxx not null, to generate temporary data without scanning the entire table.
-
ErrorCode=NoSuchProject, ErrorMessage=The specified project name does not exist
-
Cause
The MaxCompute project name or the Tunnel endpoint is incorrect.
-
Solution
-
Check and correct the project name.
Log on to the MaxCompute console. In the upper-left corner, switch to the correct region. Then, view the exact MaxCompute project name on the Projects tab.
-
Check and correct the Tunnel endpoint.
For information about Tunnel endpoints by region and network type, see Endpoints.
-
ErrorCode=NoPermission, ErrorMessage=Authorization Failed [4019], You have NO privilege 'odps:Update' on
-
Cause
You do not have permission to upload data.
-
Solution
Use Data Map in DataWorks to request Update permissions for the destination table, or ask the project owner or table owner to grant Update permissions on the table. For more information, see MaxCompute permissions.
ErrorCode=NoPermission, ErrorMessage=Authorization Failed [4019], You have NO privilege 'odps:Download' on
-
Cause
You do not have permission to download data.
-
Solution
Use Data Map in DataWorks to request Download permissions for the destination table, or ask the project owner or a user with the Super_Administrator role to grant Download permissions on the table. For more information about Download authorization, see Policy-based access control.
Error message: ErrorCode=NoPermission, ErrorMessage=Authorization Failed [4021], You have NO privilege 'odps:Select' on 'xxx', project 'xxx' is protected
-
Cause
The MaxCompute project has data protection enabled, which blocks data downloads by using Tunnel.
-
Solution
Contact the project owner to configure an exception policy and grant you the required permissions. For more information about exception policies, see Data outflow policy 1: Set an exception policy.
ErrorCode=InvalidBlockID, ErrorMessage=The specified block id is not valid.xxxx
-
Cause
The BlockID is invalid due to a high concurrency level.
-
Solution
Reduce the concurrency level. You can also run the following command to purge logs older than 5 days:
tunnel purge 5;
ErrorCode=TableModified, ErrorMessage=The specified table has been modified since the download initiated. Try to initiate another download
-
Cause
The table was modified during the download.
-
Solution
You must create a new download session to download the data. You can view the modification history in the following ways:
-
View DDL operation records: Use the Data Map feature in DataWorks to view the table change history.
-
View table data modification records: Use a metadata view or an audit log to view data change records.
-
ErrorCode=StatusConflict, ErrorMessage=The download session is expired
-
Cause
The download session expired because the download took more than 24 hours.
-
Solution
Create a new download session to download the data. Note the following:
-
If a download session is not manually closed, it automatically expires after 24 hours.
-
After you create a download session, if the table is modified, the download session also becomes invalid.
-
ErrorCode=StatusConflict, ErrorMessage=You cannot complete the specified operation under the current upload or download status
-
Cause
-
Cause 1: The upload session has already been committed.
-
Cause 2: The table or partition contains too many small files.
-
-
Solution
-
Solution for Cause 1: Create a new upload session and upload the data again.
-
Solution for Cause 2: Merge the small files.
-
ErrorCode=InvalidProjectTable, ErrorMessage=The specified project or table name is not valid or missing
-
Cause
The project name or table name is incorrect.
-
Solution
Verify the project name and table name and correct them as needed.
Log on to the MaxCompute console. In the upper-left corner, switch to the correct region. Then, view the exact MaxCompute project name on the Projects tab.
Run the
show tables;command to list table names.
ErrorCode=InvalidPartitionSpec, ErrorMessage=Error: The specified partitionspec is not valid
-
Cause
The partition field is incorrect or has an invalid format.
-
Solution
Run the
show partitions <table_name>;command to view the table partitions. Check the partition field and make sure it meets the following requirements:-
The order of partition columns in the parameter must match the order of partition columns in the table creation statement.
-
If a partition column value contains quotation marks, such as
pt='a'orpt="a", you must use a newer version of the Tunnel SDK. Earlier SDK versions do not handle quotation marks. -
If a multi-level partition spec contains spaces, such as
pt1=a, pt2=a, remove the spaces. -
For multi-level partitions, you must specify all partition levels.
-
The partition name is case-sensitive and must match the one in the table creation statement.
-
ErrorCode=InvalidRowRange, ErrorMessage=The specified row range is not valid
-
Cause
The values of the
startOffsetandcountparameters foropenReaderare invalid. -
Solution
Check your code and make sure it meets the following requirements:
-
startOffsetmust be greater than or equal to 0. -
countmust be greater than 0.
-
ErrorCode=StatusConflict, ErrorMessage=Cannot close upload now: Close Upload Session Failed.Because of Status Conflict.Current Status:critical
-
Cause
A failed DDL operation has put the upload session into an abnormal state.
-
Solution
Create a new upload session.
ErrorCode=StatusConflict, ErrorMessage=The upload|download session is expired
-
Cause
The upload session or download session expired because it was active for more than 24 hours.
-
Solution
Create a new upload session or download session.
ErrorCode=FlowExceeded, ErrorMessage=Your flow quota is exceeded
Fill out the DingTalk group application form to join the DingTalk group for technical support.
ErrorMessage=java.net.SocketException: Connection reset
-
Cause
This error often occurs in SDK-based programs or when a third-party platform reads data through Tunnel for processing. The server enforces connection protection. If you open a RecordReader but do not read from it within 300 seconds, the server closes the connection.

RecordReader has an internal cache. If your computing or processing logic is slow and does not finish processing a cached data block and trigger the next read within the timeout period, this error occurs.
-
Solution
Optimize your code logic.
ErrorCode=Unauthorized ErrorMessage=The request authorization header is invalid or missing. Message: The signature is time-expired
-
Cause
The signature has expired.
-
Solution
Check the system time of your client. The time difference cannot exceed 15 minutes. The Tunnel server uses Network Time Protocol (NTP) for time synchronization and is generally accurate. If you are sure that the client system time is correct, fill out the DingTalk group application form to join the DingTalk group for technical support.
If you encounter this error when you develop with the Tunnel SDK, make sure that the interval between opening the writer and writing data does not exceed 15 minutes. The signature is generated when the writer is opened.
ErrorCode=MalformedDataStream ErrorMessage=The data stream you provided was not well-formed or did not validate against schema
-
Cause
The structure of the uploaded data is inconsistent with the schema of the destination table.
-
Solution
Check the structure of the uploaded data and the schema of the destination table to ensure that they are consistent.
ErrorCode=MethodNotAllowed, ErrorMessage=The specified method is not allowed against clustered table and partition
-
Cause
Tunnel does not support data uploads to a clustered table at this time.
-
Solution
None.
ErrorCode=InstanceNotTerminated, ErrorMessage=The instance has not terminated
-
Cause
The instance for the download has not finished running.
-
Solution
Wait until the instance finishes running, then download the data again.
ErrorCode=QPSExceeded, ErrorMessage=Your QPS quota is exceeded.ODPS-0110044: Flow control triggered - Request rejected by catalog server throttling, threshold 2.60, fallback or retry later.
-
Cause
A table-level DDL operation triggered a queries per second (QPS) throttling error. The limit for commit operations on a single table is 75 times every 15 seconds.
-
Solution
Control how often you submit DDL operations, such as Commit Upload.