cloudinary_php icon indicating copy to clipboard operation
cloudinary_php copied to clipboard

API returns 500 "General Error" when trying to upload an image that is larger than the `chunk_size`

Open stefan-schnellberger opened this issue 1 year ago • 2 comments

I noticed, that the API returned a "General Error" when I tried to upload an image that is larger than 20 MB. After some research I found a matching issue in the cloudinary_android-Repo: https://github.com/cloudinary/cloudinary_android/issues/148. After reading the docs (https://cloudinary.com/documentation/upload_images#chunked_asset_upload), I set the chunk_size to a value that is larger than 20 MB (e. g. 30000000) when calling the upload-function. That fixed my problem. However, the Chunked asset upload feature doesn't seem to work.

Issue Type (Can be multiple)

  • [x] Behaviour - Functions aren’t working as expected (such as generate URL)
  • [x] Documentation - Inconsistency between the docs and behaviour

Steps to reproduce

Try to upload a file larger than 20 MB (or the \Cloudinary\Configuration\ApiConfig::DEFAULT_CHUNK_SIZE respectively).

Error screenshots or Stack Trace (if applicable)

Message: "Cloudinary\Api\Exception\GeneralError: General Error in .../vendor/cloudinary/cloudinary_php/src/Api/BaseApiClient.php:417 Stack trace: #0 .../vendor/cloudinary/cloudinary_php/src/Api/BaseApiClient.php(337): Cloudinary\Api\BaseApiClient->handleApiResponse(Object(GuzzleHttp\Psr7\Response)) #1 .../vendor/guzzlehttp/promises/src/Promise.php(209): Cloudinary\Api\BaseApiClient->Cloudinary\Api{closure}(Object(GuzzleHttp\Psr7\Response)) #2 .../vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), NULL) #3 .../vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise{closure}() #4 .../vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(159): GuzzleHttp\Promise\TaskQueue->run() #5 .../vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(185): GuzzleHttp\Handler\CurlMultiHandler->tick() #6 .../vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Handler\CurlMultiHandler->execute(true) #7 .../vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn() #8 .../vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending() #9 .../vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList() #10 .../vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending() #11 .../vendor/cloudinary/cloudinary_php/src/Api/ApiClient.php(348): GuzzleHttp\Promise\Promise->wait() #12 .../vendor/cloudinary/cloudinary_php/src/Api/ApiClient.php(282): Cloudinary\Api\ApiClient->postLargeFileAsync('image/upload', Object(GuzzleHttp\Psr7\Stream), Array, Array) #13 .../vendor/cloudinary/cloudinary_php/src/Api/Upload/UploadTrait.php(138): Cloudinary\Api\ApiClient->postFileAsync('image/upload', 'data:image/jpeg...', Array, Array) #14 .../vendor/cloudinary/cloudinary_php/src/Api/Upload/UploadTrait.php(162): Cloudinary\Api\Upload\UploadApi->uploadAsync('data:image/jpeg...', Array) #15 ...: Cloudinary\Api\Upload\UploadApi->upload('data:image/jpeg...', Array)

Operating System

  • [x] Linux

Environment and Frameworks (fill in the version numbers)

  • PHP Cloudinary SDK version - 2.14.0
  • PHP Version - 8.2.25
  • Framework (Laravel, Symphony, etc) - 6.2.10

stefan-schnellberger avatar Nov 21 '24 15:11 stefan-schnellberger

@stefan-schnellberger can you provide your cloudname? If you don't want to share it here, you can open ticket via https://support.cloudinary.com/hc/en-us/requests/new

tommyg-cld avatar Nov 22 '24 12:11 tommyg-cld

@tommyg-cld Thank you for your reply. I followed your link and sent a message to the support team:).

If the support can help me fix the problem, I will try to post the solution here, so that others that encounter the same problem, can find it.

stefan-schnellberger avatar Nov 22 '24 14:11 stefan-schnellberger