hi @nikita ,
I will try to help you with this issue.
But first, can you tell us what .NET Framework version you are using and on which OS?
Did this error start to appear from some specific moment or event, such as an SDK update or OS patch installation?
And also, can you provide us most inner exception within this one “System.IO.IOException: The response ended prematurely”.
It should have more details about the root cause, and then it would be much easier to investigate.
I found an issue on dotnet github that fits our case.
HttpClient The response ended prematurely · Issue #72177 · dotnet/runtime · GitHub.
Can you make sure you have those patches installed?
In the meantime, I’ll try to reproduce this error on my side
Regards,
Artur
Hello again,
Apart from questions above, few more came to my mind.
I would be grateful if you could answer them as well.
Can you show us snippet of code which you are execute?
I’m interested about params you are passing
Are those folders where I get this error when calling the getFolderItemsAsync method somehow unique?
Can you tell us how many items they have inside?
Do other commands also last as long as this one, around 8 minutes?
Are you able to get the RequestID
from the error you received? This would help us track and analyze the request on our side.
Can you try to call the same endpoint but via powershell Invoke-RestMethod
and tell us about the results?
Here is sample code where you can replace <<_YOUR_ACCESS_TOKEN_HERE_>>
, <<_YOUR_FOLDER_ID_>>
and <<_YOUR_ADDITIONAL_QUERY_PARAMS_>>
to match the query to your criteria.
$headers = New-Object "System.Collections.Generic.DictionaryryString],]String]]"
$headers.Add("Authorization", "Bearer <<_YOUR_ACCESS_TOKEN_HERE_>>")
$response = Invoke-RestMethod 'https://api.box.com/2.0/folders/<<_YOUR_FOLDER_ID_>>/items?limit=1000&<<_YOUR_ADDITIONAL_QUERY_PARAMS_>>' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
Regards,
Artur
Hi @ajankowski,
Our application is written in .NET 6, application runs on Windows.
Nothing preceded this problem, at some point we started getting this error, the SDK version did not change
We have two examples for inner exception:
System.IO.IOException: The response ended prematurely.
at System.Net.Http.HttpConnection.FillAsync(Boolean async)
at System.Net.Http.HttpConnection.ChunkedEncodingReadStream.CopyToAsyncCore(Stream destination, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionResponseContent.SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken)
at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task serializeToStreamTask, MemoryStream tempBuffer)
System.IO.IOException: The response ended prematurely.
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
We use a standard function from the SDK that is wrapped in a loop to get all the items in a folder.
var folderItems = await boxClient.FoldersManager.GetFolderItemsAsync(id, paginationSize, offset, fields);
offset += paginationSize;
I will try to figure out the number of items in the folders for which the error occurred
No, the rest of the commands work out pretty quickly. Also getFolderItemsAsync command does not always work out so long
No, I can’t get the RequestId
We will try to execute this command
Hello,
We are tried the suggested PowerShell scripts and got
Invoke-RestMethod : The remote server returned an error: (404) Not Found.
At line:5 char:13
$response = Invoke-RestMethod 'https://api.box.com/2.0/folders/194829 …
CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) )Invoke-RestMethod], WebException
FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Our colleague also used Curl to see if he could get any more info. From Curl,
{“type”:“error”,“status”:404,“code”:“not_found”,“context_info”:{“errors”:c{“reason”:“invalid_parameter”,“name”:“folder”,“message”:“Invalid value ‘d_142133921794’. ‘folder’ with value ‘d_142133921794’ not found”}]},“help_url”:“http://developers.box.com/docs/#errors”,“message”:“Not Found”,“request_id”:“xfu8pahfngxdoe13”}
He can put the URL in a browser and it shows a list of files/folders in that folder. He tested all them in both browser and PowerShell. They all work in the browser and fail (404) in PowerShell.
He also tested putting in invalid Bearer token and got a different error, so he feels confident the command line is connecting and authenticating. However, it’s unclear why no results are being returned.
Regards,
Vitali
The error messages you got suggest that the folder id was misformatted (should be all digits, not “d_142133921794”). Can you check your script and try again?
Also, please restate what other problems you’re still currently facing here. Thanks
Hi @nikita
As your log above, seems like the connection auto terminated after around 8 minutes. I’m trying to reproduce that issue but it’s seem like I don’t have any request could read 8 minutes waiting time.
So can you provide some information which could help me check this:
- Do you have any Box Shield, Collaborators, Retention Policy, Classification, … enabled on these folder?
- What is the limit number of items you used to get items in the folder?
- Any other specific folder configuration?
I tried to get items with limit 1000 files, and it just take around 3 secs to complete, so I’m not sure how can you reach 8 minutes waiting?
Regards,
Minh