Have found four issues that can cause caps to come loose over the years
1. Cotter pins too long. Walks caps right out of the hub
2. Wrong size / out of tolerance aka "cheap" caps
3. Excessive end play in bearings
4. Trying to reuse caps
If worst comes to worst you could always "stake" the...