Plastic is why your lunch box smells.
Plastic lunch boxes absorb fish and egg odors, so washing alone won’t get the smell out.
The porous surface of plastic soaks up the sulfur compounds from eggs and the stinky amines from fish. Dish soap doesn’t break those down, and rinsing just spreads them around. You can try baking soda paste or a soak in vinegar, and sunlight does help, but that’s treating symptoms. The real fix is to stop using plastic for foods that smell.
Switch to glass or stainless steel. Glass doesn’t absorb smells, and steel is even easier to deodorize. If you’re stuck with plastic, the trick is to keep the strong food from touching it — pack the fish or eggs in a small glass ramekin or wrap them in parchment paper inside the container. Wash the box as soon as you get home, too; the longer the residue sits, the deeper it goes.
Also accept that some cheap plastic is just going to stink forever. That’s not a cleaning failure, that’s the material.
Future-you will actually eat leftovers if the box doesn’t smell like old egg.
