Two systems both adjusting stock
The classic failure. A count corrects a quantity on the floor, then a scheduled sync from the ERP writes the old number back, and the credibility of the whole project is gone inside a fortnight. One system owns on hand, movements flow one way, and adjustments are posted through that owner. If you cannot name the owner for each item type without hesitating, the design is not finished.
Bins that nobody maintains
Bin locations decay quietly. A pallet is moved to make room, a returned item goes back to the nearest gap, and within a month pickers are searching rather than trusting the screen. If you want bins, you need scanned put-away and scanned transfers as non negotiable habits, plus counts that check the location as well as the quantity. If that discipline is unrealistic right now, start at zone level and earn your way to bins.
Available to promise sent to channels as on hand
Publishing the raw on hand number to a busy store and a few marketplaces is how you oversell. The figure the channels need is what is genuinely free to sell: on hand, less reserved for unshipped orders, less quarantined or damaged, less any safety buffer you choose to hold on fast moving lines. Get this wrong and you will be cancelling orders and wearing marketplace penalties for it.
Scanners chosen before the process is agreed
Hardware decisions have a way of arriving first because they are tangible. Rugged handhelds, phones in cases, wrist mounted units and fixed bench scanners all suit different flows, and the right answer depends on whether pickers are walking long distances, handling cold stock, or standing at a bench all day. Agree the picking method, then buy to suit it, and buy two of whatever you choose before you buy twenty.
Wi-Fi that only works in the office
A shed with racking is a difficult radio environment, and a dropout mid pick is an operational problem rather than an inconvenience. Survey coverage including the far aisles, the loading dock and the cold room if you have one, and insist the mobile flow degrades gracefully: queue the scans locally, sync when the signal returns, and never lose a confirmed pick because an access point blinked.
Nobody owns the exception queue
Short picks, damaged goods, unexpected inbound lines and orders that will not allocate all need a person, not just a screen. Name that person, give them a short daily queue with reasons attached, and make sure the queue is visible to a supervisor if it grows. Unowned exceptions get cleared by whoever is annoyed enough to force them through, and that is how a well built integration ends up with a stock ledger nobody believes.