{"record":{"id":"0c8b5d04dfc87359","repo":"discourse/discourse","slug":"attempted-to-delete-a-non-asset-s3-path-to-del","errorCode":null,"errorMessage":"Attempted to delete a non-/asset S3 path (#{to_delete}). Aborting","messagePattern":"Attempted to delete a non-/asset S3 path \\(#(.+?)\\)\\. Aborting","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"lib/tasks/s3.rake","lineNumber":164,"sourceCode":"\n  assets_to_delete = existing_assets.dup\n\n  # Check that all current assets are uploaded, and remove them from the to_delete list\n  asset_paths.each do |current_asset_path|\n    uploaded = assets_to_delete.delete?(prefix_s3_path(current_asset_path))\n    if !uploaded\n      puts \"A current asset does not exist on S3 (#{current_asset_path}). Aborting cleanup task.\"\n      exit 1\n    end\n  end\n\n  if assets_to_delete.size > 0\n    puts \"Found #{assets_to_delete.size} assets to delete...\"\n\n    assets_to_delete.each do |to_delete|\n      if !to_delete.start_with?(prefix_s3_path(\"assets/\"))\n        # Sanity check, this should never happen\n        raise \"Attempted to delete a non-/asset S3 path (#{to_delete}). Aborting\"\n      end\n    end\n\n    assets_to_delete.each_slice(500) do |slice|\n      message = \"Deleting #{slice.size} assets...\\n\"\n      message += slice.join(\"\\n\").indent(2)\n      puts message\n      helper.delete_objects(slice)\n      puts \"... done\"\n    end\n  else\n    puts \"No stale assets found\"\n  end\nend\n","sourceCodeStart":146,"sourceCodeEnd":179,"githubUrl":"https://github.com/discourse/discourse/blob/1b2d7253e854205d2c95c80b2c6a1cdd42e45059/lib/tasks/s3.rake#L146-L179","documentation":"Error \"Attempted to delete a non-/asset S3 path (#{to_delete}). Aborting\" thrown in discourse/discourse.","triggerScenarios":"Thrown at lib/tasks/s3.rake:164 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1b2d7253e854205d2c95c80b2c6a1cdd42e45059","analyzedAt":"2026-08-26T03:11:08.302Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}