Jesus / dropbox_api

Ruby client library for Dropbox API v2
MIT License
171 stars 113 forks source link

NoMethodError raised when dropbox responds with 429 #99

Open senid231 opened 1 year ago

senid231 commented 1 year ago

Description

Looks like Dropbox may respond with a 429 status code and no body or content type is not JSON during file chunks upload. In this case gem failed with NoMethodError

Gem version: 0.1.21

Backtrace

NoMethodError: undefined method `[]' for nil:NilClass
  from dropbox_api/endpoints/base.rb:47:in `process_response'
  from dropbox_api/endpoints/content_upload.rb:23:in `perform_request'
  from dropbox_api/endpoints/files/upload_session_start.rb:31:in `block in <class:UploadSessionStart>'
  from dropbox_api/client.rb:36:in `block in add_endpoint'
  from dropbox_api/chunked_uploader.rb:19:in `start'
  from dropbox_api/endpoints/virtual/upload_by_chunks.rb:45:in `upload_by_chunks'

dropbox_api/endpoints/base.rb:47

45      when 429
46        error = DropboxApi::Errors::TooManyRequestsError.build(
47          raw_response.env[:api_result]['error_summary'],
48          raw_response.env[:api_result]['error']['reason']