Skip to content

Importing egg icon with different file type does not remove old icon file #2269

@Sternenflame

Description

@Sternenflame

Current Behavior

When uploading a new egg image with a different file extension than the existing one (e.g. replacing a .png with a .jpeg), the old file is not deleted. Both files coexist in storage/app/public/icons/egg/, and since the panel resolves icons by scanning supported extensions in order, it may return the old file instead of the new one.

$ ls -la storage/app/public/icons/egg/d6018085*
-rw-r--r-- 1 www-data www-data   7037 Feb 27 23:52 d6018085-...-51ea45a69ace.png
-rw-r--r-- 1 www-data www-data 102056 Feb 27 23:55 d6018085-...-51ea45a69ace.jpeg

Using the "Delete Image" button after does however delete all image files, no matter the extension.

Expected Behavior

When a new egg image is uploaded, the save handler should delete any existing icon file for that egg UUID across all supported extensions before writing the new file.

Steps to Reproduce

  1. Go to Admin → Eggs → Edit any egg
  2. Import an image (e.g. a .png file) → success
  3. Import a different image with a different extension (e.g. a .jpeg file) → shows "Image Updated"
  4. Reload the page → old image is still displayed
  5. Verify on disk: ls -la /var/www/pelican/storage/app/public/icons/egg/{egg-uuid}* — both files exist

Panel Version

1.0.0-beta33

Wings Version

1.0.0-beta24

Games and/or Eggs Affected

Affects all eggs

Docker Image

N/A

Error Logs

https://logs.pelican.dev/45d67879

No errors logged. The upload completes and reports success; the issue is that the old file isn't cleaned up on disk.

Is there an existing issue for this?

  • I have searched the existing issues before opening this issue.
  • I have provided all relevant details, including the specific game and Docker images I am using if this issue is related to running a server.
  • I have checked in the Discord server and believe this is a bug with the software, and not a configuration issue with my specific system.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions