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

Can't upload most pictures #118

Closed
ImaCrea opened this issue Sep 26, 2020 · 9 comments
Closed

Can't upload most pictures #118

ImaCrea opened this issue Sep 26, 2020 · 9 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@ImaCrea
Copy link

ImaCrea commented Sep 26, 2020

Hi dear YH contributors,
I am super pleased to be able to play with Pixelfed thanks to you!

I am not sure this issue should be here or on Pixelfed's so in doubt I start here. Hope you don't mind ^^

Describe the bug

  • When I try to upload a pic, it looks like it's uploading, it goes to 100% and then I get an error message.

  • In browser console all I get is a 500 error, no more hint.

  • Same error on Chromium, Safari, Firefox (Mac 10.14.15)

  • Same error when trying on Firefox mobile (e OS Android)

  • Note that somehow one pic upload on desktop managed to be published properly but 5 others I tested won't go through.

  • I also edited .env conf file in order to switch debug_app by true but I can't see more info in browser console as a result. Maybe it affects log on server's side but I couldn't find how to have a look Pixelfed log. :(

Versions

  • Hardware: Debian 10 - Hetzner VPS - 2vCPU / 4GB ram / 40GB volume — ssh access
  • YunoHost version: 4.0.8
  • Using Pixelfed master branch - Installed through GUI. Fresh YH install, nothing else on it.
@lapineige
Copy link
Member

lapineige commented Sep 27, 2020

First of all, thank you for the detailed bug report :) 👍

Could you check your pixelfed configuration (via the command line cat /var/www/pixelfed/.env or graphically here : yourpixelfeddomain.tld/i/admin/settings/config) to see what is the value of MAX_PHOTO_SIZE ?
If the limit is too low for your image, Pixelfed has this behavior, non-precise error message at the end of the upload (yeah I know, very bad UX, it should at least check before any upload and give your a better error message) and fails.

@lapineige lapineige added the bug Something isn't working label Sep 27, 2020
@lapineige lapineige self-assigned this Sep 27, 2020
@ImaCrea
Copy link
Author

ImaCrea commented Sep 27, 2020

Hello, thank you for your reply.
Yes I checked that already.

On my .env it says :

MAX_ACCOUNT_SIZE=1000000
MAX_PHOTO_SIZE=15000

I guess 15000 means 15Mb, right? Thing is, the pic I tried to upload are around 3~5Mb. So :/

@ImaCrea
Copy link
Author

ImaCrea commented Sep 27, 2020

Ok, so I just understood how I get to the log file of pixelfed (/var/www/pixelfed/storage/logs) and here's what I get :

[2020-09-27 15:02:54] production.ERROR: The "" file does not exist or is not readable. {"userId":1,"exception":"[object] (Symfony\\Component\\Mime\\Exception\\InvalidArgumentException(code: 0): The \"\" file does not exist or is not readable. at /var/www/pixelfed/vendor/symfony/mime/FileinfoMimeTypeGuesser.php:50)
[stacktrace]
#0 /var/www/pixelfed/vendor/symfony/mime/MimeTypes.php(134): Symfony\\Component\\Mime\\FileinfoMimeTypeGuesser->guessMimeType('')
#1 /var/www/pixelfed/vendor/symfony/http-foundation/File/File.php(73): Symfony\\Component\\Mime\\MimeTypes->guessMimeType('')
#2 /var/www/pixelfed/app/Http/Controllers/Api/BaseApiController.php(244): Symfony\\Component\\HttpFoundation\\File\\File->getMimeType()
#3 [internal function]: App\\Http\\Controllers\\Api\\BaseApiController->uploadMedia(Object(Illuminate\\Http\\Request))
#4 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#5 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('uploadMedia', Array)
#6 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ApiController), 'uploadMedia')
#7 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\\Routing\\Route->runController()
#8 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\\Routing\\Route->run()
#9 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#10 /var/www/pixelfed/app/Http/Middleware/Localization.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#11 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\\Http\\Middleware\\Localization->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#12 /var/www/pixelfed/app/Http/Middleware/TwoFactorAuth.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#13 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\\Http\\Middleware\\TwoFactorAuth->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#14 /var/www/pixelfed/app/Http/Middleware/EmailVerificationCheck.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#15 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\\Http\\Middleware\\EmailVerificationCheck->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#16 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(76): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#20 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#26 /var/www/pixelfed/app/Http/Middleware/FrameGuard.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\\Http\\Middleware\\FrameGuard->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#30 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#31 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#32 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#33 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#34 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#35 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(177): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#36 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#37 /var/www/pixelfed/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#39 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#40 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#42 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#45 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#46 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#47 /var/www/pixelfed/vendor/barryvdh/laravel-cors/src/HandlePreflight.php(29): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#48 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Barryvdh\\Cors\\HandlePreflight->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#49 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#50 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(152): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#51 /var/www/pixelfed/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(117): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#52 /var/www/pixelfed/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#53 {main}
"} 

I don't have any idea how to interpret that. Got any idea maybe?

@lapineige
Copy link
Member

I have no idea… I wonder if we should ask (via a bug report ?) Pixelfed team ?

@ImaCrea
Copy link
Author

ImaCrea commented Sep 28, 2020

I see. No worries, I can take care of it when I have a moment.

@ImaCrea
Copy link
Author

ImaCrea commented Sep 29, 2020

ah one second @lapineige I might have found a fix.
I spoke on Pixelfed's IRC.

Here's what they told me:

look at https://docs.pixelfed.org/install-guides/arch.html#preparing-a-machine: Edit `/etc/php/php.ini`: Edit the following lines to your desired upload limits: `post_max_size = 8M` ; `upload_max_filesize = 2M` ; `max_file_uploads = 20`

So in our case the file is /etc/php/7.2/fpm/php/ini so I edited the limits to 20M for post_max_size and upload_max_filesize and... now it's working ! happy yay!

@ImaCrea ImaCrea closed this as completed Sep 29, 2020
@ImaCrea
Copy link
Author

ImaCrea commented Sep 29, 2020

But I have to say this wasn't easy at all. Maybe that need an update to the package to make sure at least php.ini is set with a 15M limit to have it coherent with pixelfed's conf? And a quick explanation in the readme for whoever wants to change that limits?

@lapineige
Copy link
Member

Oh yeah, I forgot this one, indeed it could have been php limit and not Pixelfed one…

Strangely your use php 7.2, but it should be 7.3 for pixelfed 🤔

Maybe that need an update to the package to make sure at least php.ini is set with a 15M limit to have it coherent with pixelfed's conf? And a quick explanation in the readme for whoever wants to change that limits?

Very good point, we should explain that in the readme, and maybe set a different php limit (at least to fit Pixelfed standard one).
But are complementary, as setting a good php default value won't resolve the issue if people try to change that value...

@ImaCrea
Copy link
Author

ImaCrea commented Oct 3, 2020

btw I see 7.3 for php now so don't worry on that side ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants