Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

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

Error 400 after successful file upload #1067

Open
rubyff opened this issue Jan 16, 2025 · 0 comments
Open

Error 400 after successful file upload #1067

rubyff opened this issue Jan 16, 2025 · 0 comments
Labels
status:waiting-for-triage An issue that is yet to be reviewed or assigned type:bug A broken experience

Comments

@rubyff
Copy link

rubyff commented Jan 16, 2025

Describe the bug

I'm testing an upload process, here's an anonymized snippet of the code:

    async def _upload_file(self, drive_id, filename, file_content, folder_name=None):
        properties = DriveItemUploadableProperties(
            additional_data={
                "@microsoft.graph.conflictBehavior" : "replace",
                },
            )
        request_body =  CreateUploadSessionPostRequestBody(item=properties)
        if folder_name is not None:
            filename = folder_name + '/' + filename
        session = await (
            self.client
            .drives.by_drive_id(drive_id)
            .items.by_drive_item_id(f"root:/{filename}:")
            .create_upload_session.post(body=request_body)
            )
        large_file_session = LargeFileUploadSession(
            upload_url=session.upload_url,
            expiration_date_time=session.expiration_date_time,
            additional_data=session.additional_data,
            is_cancelled=False,
            next_expected_ranges=session.next_expected_ranges
        )
        task = LargeFileUploadTask(upload_session=large_file_session, request_adapter=self.client.request_adapter, stream=file_content)

        upload_result = await task.upload()
        return upload_result

The upload proceeds as expected, but I get the following exception anyway:

APIError
Code: 400
message: The server returned an unexpected status code and no error class is registered for this code 400

Expected behavior

Either a more clear error code if there is a problem I'm not seeing, or no error after a successful upload.

How to reproduce

See code in first section.

SDK Version

1.17.0

Latest version known to work for scenario above?

No response

Known Workarounds

Ignoring the exception for error 400 works, but is not ideal.

Debug output

APIError
Code: 400
message: The server returned an unexpected status code and no error class is registered for this code 400

Configuration

Windows 11, x64. I haven't tested on any other systems at present.

Other information

This may not be related to the SDK at all, but if it is an error in the request that isn't clear from the documentation I've read on this. I will echo comments elsewhere that the documentation on using the SDK for uploads is extremely limited and I had to cobble a lot of this together from responses to other questions here.

@rubyff rubyff added status:waiting-for-triage An issue that is yet to be reviewed or assigned type:bug A broken experience labels Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:waiting-for-triage An issue that is yet to be reviewed or assigned type:bug A broken experience
Projects
None yet
Development

No branches or pull requests

1 participant