Skip to content

Can't create podcasts or episodes after adding S3 config

Hi. I'm not entirely sure if the following is a bug or if I'm missing some important bit of configuration — I'm pretty new to self-hosting and using S3 storage, so bear with me please.

Describe the bug

I'm trying to get S3 set up. I followed the instructions in the documentation, but afterwards, I can't create a new podcast or episode. If I remove the S3 config from the .env file, everything works fine.

Steps to reproduce

  1. add S3 config to .env file
  2. create new podcast or episode in backend

Expected behavior

New podcast or episode is created and relevant files are uploaded.

Actual behavior

I get the "we've hit a snag" page and the error message pasted below.

Relevant logs and/or screenshots

ErrorException: Undefined array key "extension" in /var/www/castopod/modules/Media/Entities/BaseMedia.php:74
Stack trace:
#0 /var/www/castopod/modules/Media/Entities/BaseMedia.php(74): CodeIgniter\Debug\Exceptions->errorHandler()
#1 /var/www/castopod/modules/Media/Entities/Image.php(30): Modules\Media\Entities\BaseMedia->initFileProperties()
#2 /var/www/castopod/modules/Media/Entities/Image.php(71): Modules\Media\Entities\Image->initFileProperties()
#3 /var/www/castopod/vendor/codeigniter4/framework/system/Database/MySQLi/Result.php(145): Modules\Media\Entities\Image->setAttributes()
#4 /var/www/castopod/vendor/codeigniter4/framework/system/Database/BaseResult.php(149): CodeIgniter\Database\MySQLi\Result->fetchObject()
#5 /var/www/castopod/vendor/codeigniter4/framework/system/Database/BaseResult.php(106): CodeIgniter\Database\BaseResult->getCustomResultObject()
#6 /var/www/castopod/vendor/codeigniter4/framework/system/Database/BaseResult.php(377): CodeIgniter\Database\BaseResult->getResult()
#7 /var/www/castopod/vendor/codeigniter4/framework/system/Model.php(250): CodeIgniter\Database\BaseResult->getFirstRow()
#8 /var/www/castopod/vendor/codeigniter4/framework/system/BaseModel.php(622): CodeIgniter\Model->doFirst()
#9 /var/www/castopod/modules/Media/Models/MediaModel.php(110): CodeIgniter\BaseModel->first()
#10 /var/www/castopod/app/Entities/Podcast.php(263): Modules\Media\Models\MediaModel->getMediaById()
#11 /var/www/castopod/vendor/codeigniter4/framework/system/Entity/Entity.php(491): App\Entities\Podcast->getCover()
#12 /var/www/castopod/app/Models/PodcastModel.php(444): CodeIgniter\Entity\Entity->__get()
#13 /var/www/castopod/vendor/codeigniter4/framework/system/BaseModel.php(1479): App\Models\PodcastModel->setActorAvatar()
#14 /var/www/castopod/vendor/codeigniter4/framework/system/BaseModel.php(758): CodeIgniter\BaseModel->trigger()
#15 /var/www/castopod/vendor/codeigniter4/framework/system/Model.php(667): CodeIgniter\BaseModel->insert()
#16 /var/www/castopod/modules/Admin/Controllers/PodcastController.php(250): CodeIgniter\Model->insert()
#17 /var/www/castopod/modules/Admin/Controllers/PodcastController.php(46): Modules\Admin\Controllers\PodcastController->attemptCreate()
#18 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(901): Modules\Admin\Controllers\PodcastController->_remap()
#19 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(457): CodeIgniter\CodeIgniter->runController()
#20 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(340): CodeIgniter\CodeIgniter->handleRequest()
#21 /var/www/castopod/public/index.php(73): CodeIgniter\CodeIgniter->run()
#22 {main}

Context

  • Castopod: 1.35
  • OS: Debian server with Yunohost
  • Browser: [e.g. chrome, safari]
  • Web server: NGINX (I think?)
  • S3 storage from Storj