Project Mad AdderHelp Centre
All help articles
Animals & careCurrent Beta guidance

Adding and managing animal profile images

Add a clear animal profile photo without having to resize phone images yourself. PMA creates optimized profile and thumbnail variants for faster loading and predictable storage use.

About 10 minutesessential

Before you begin

  • Open an animal you are allowed to manage, or add a new animal.
  • Use a supported JPEG, PNG, WebP, HEIC, or HEIF source image that your browser can decode.
  • Be online to complete a cloud upload. A selected image can be prepared or queued, but PMA needs connectivity to finish storage synchronization.

Interface walkthrough

These annotated interface maps describe the current PMA controls. They do not replace a real record review in your workspace.

1Add or edit animal
Look for: Take Photo / Choose Image

Use the device camera where available or choose an existing image. A local preview appears before the upload is committed.

2Optimization status
Look for: Optimizing → Uploading → Saving

PMA resizes and compresses the selected source, creates a lightweight thumbnail, and shows the current upload phase.

3Plan & Usage
Look for: Media storage

Shows stored optimized bytes, active profile-image count, the plan allowance, and any cleanup still being reconciled.

4Animal lists
Look for: Fast thumbnail

Collection lists and cards use the lightweight thumbnail instead of repeatedly downloading the larger profile variant.

Step-by-step workflow

1

Choose a photo

Open Add Animal, Edit Animal, or the animal profile. Select Take Photo or Choose Image. PMA validates the source before uploading anything.

2

Let PMA optimize it

PMA normalizes orientation, limits the main profile image to about 1600 pixels on its longest edge, and generates a separate thumbnail. Typical targets are roughly 300–500 KB for the profile variant and 30–60 KB for the thumbnail, although image content can make the final size vary.

3

Wait for the safe commit

The new variants upload before PMA switches the animal record. If a replacement fails before the database commit, the previous profile image stays intact.

4

Replace or remove later

Replacing an image creates a new version and queues the prior stored variants for cleanup. Removing the profile image releases the active asset and schedules its stored objects for cleanup.

5

Check media usage

Open Settings → Plan & usage. PMA counts the actual optimized stored variants against the media allowance rather than charging the original phone-file size.

Expected result

The animal has a fast-loading profile photo and thumbnail, the unrestricted source upload is not permanently retained by the PMA profile-image pipeline, and current stored bytes are reflected in Media storage usage.

Safety boundaries

  • Profile images are stored in PMA’s private organization-scoped media bucket; they are not public-by-path assets.
  • PMA never trusts the source filename as the storage path.
  • Very large, corrupt, unsupported, or unsafe decoded images are rejected before commitment.
  • Keeper includes one optimized profile image for each of up to 10 animals within an approximately 10 MB media allowance.
  • Replacing an image does not delete the previous active image before the new asset is safely committed.

Troubleshooting

My HEIC or HEIF photo will not open

Browser support varies. If PMA says the browser cannot decode the file, export or share it as JPEG/WebP and choose that copy. The source is not silently uploaded when decoding fails.

Media allowance reached

Replace or remove existing media, reduce stored usage, or use a plan with a larger media allowance. Existing images remain available when the limit is reached.

The animal was created but the photo failed

The animal record is intentionally preserved. Reopen the animal and add the profile image again; PMA avoids duplicating the animal just because media synchronization failed.

The old photo remains briefly after replacement

Refresh the profile after synchronization. PMA uses versioned object paths so a browser/CDN cannot mistake a replacement for an older cached object.

Related articles