Forgetting to run the -th iteration means you cannot detect negative cycles. Always run one extra iteration after the standard iterations. Using single-array relaxation in constrained problems (like Cheapest Flights) allows paths longer than intended.
Always use two arrays when controlling path length. Not tracking parent pointers makes cycle reconstruction impossible. Always store parents if you need to output the cycle, not detect it. Parent tracking is required for path reconstruction.