In the file /system/File/Amazon.php inside the function deleteContainer() this code is executed when adding a new delete task to delete the files in a bucket folder (container):
/* Turn on task */
\IPS\Db::i()->update( 'core_tasks', array( 'enabled' => 1 ), array( '`key`=?', 's3_delete' ) );
The problem is that the task's key is not s3_delete but s3Delete (no space + capitalized). This causes the task to delete the S3 files to not activate correctly.
The same issue is also present inside the code of the s3Delete task to disable itself in 2 different locations.
Lines 44-50:
if ( !( $obj instanceof \IPS\File\Amazon ) )
{
/* Class is not Amazon, so just stop here and truncate the table as there's nothing we can really do now. */
\IPS\Db::i()->delete( 'core_s3_deletions' );
\IPS\Db::i()->update( 'core_tasks', array( 'enabled' => 0 ), array( '`key`=?', 's3_delete' ) );
return NULL;
}
Lines 96-97:
/* Nothing to do, so switch off the task */
\IPS\Db::i()->update( 'core_tasks', array( 'enabled' => 0 ), array( '`key`=?', 's3_delete' ) );
Again s3_delete is being used instead of s3Delete.