The short answer
Itβs normal β not cruelty, and not a sign of a bad fish. Most fish have no instinct to protect young; to them, a tiny fry is simply an easy meal. Livebearers like guppies routinely eat their own newborns, and even attentive parents such as angelfish often eat their first few spawns before they learn. The fix isnβt to change the fishβs nature β itβs to separate the babies.
Why fish do it
Fish evolved to produce large numbers of young precisely because most get eaten. A parent that eats a few of its own fry loses nothing evolutionarily when it produces dozens more. Several things make it worse:
- No parental instinct in most community fish β fry are just food.
- Stress or crowding, which prompts parents to consume a spawn and try again later.
- Inexperience β first-time angelfish and cichlid parents commonly eat early clutches while learning. See how do I breed angelfish.
How to save the babies
Since you canβt train the instinct away, separate the two:
- Move the fry to a breeding box inside the tank or to a separate grow-out tank.
- Add dense cover β floating plants and moss let fry hide the moment they appear.
- For egg-layers, move the eggs to a hatching container before the parents get to them β see how do I breed corydoras.
Plan ahead next time
Once you know a fish is close to giving birth or spawning, get protection ready before the event. For livebearers, watch for a swollen belly and gravid spot β see how do I tell if my fish is pregnant β and have cover or a breeding box in place. Then read what do I do with baby fish and browse aquariums for a grow-out tank.