Some causes of poor self-checkout experience:

* The switch to self-checkout overlapped with the push for reusable bags. Some sturdy reusable bags are significantly heavier than others, and at certain stores they choose to make this fail badly (this is by brand, not neighborhood). Sometimes this can be worked around by adding bags gradually when adding variable-weight items. "Skip bagging" is probably how it's supposed to be done though.

* Self-checkout forcing serialization as each item is put into the bagging area. Traditional checkout allows each item to push the previous down the belt.

* Self-checkout often has size limits, either employee-enforced or practical (e.g. by drastically shrinking the item pre-scan and bagging areas; I suppose bag-weight errors also count for this), even if this conflicts with the other major push that stores have ("spend more in one trip!")

* Some items (mostly produce) lose their label and/or don't have one in the first place, and are hard to look up too. Admittedly, this is largely a matter of competence and I've had employees make errors on the same things.

* Items with ad-hoc discounts may be handled badly in several ways ("x% off" stickers usually require employee assistance; full-blown price-replacement are more likely to work but can fail if the original barcode wasn't fully covered)

* Sometimes the scanner beeps, but it's a rejection beep rather than an acceptance beep and those of us who don't spend all day doing this can't tell the difference. If you continue scanning and it keeps beeping, it can be difficult to resynchronize once you realize the problem.

* If anything at all goes wrong with the price of an item the system does register, noticing and arranging for the fixing of it is entirely on you, while you're busy doing work. With traditional checkout, you both have another set of eyes and are not distracted during the process. IME this causes problems at least one per month, and some of the errors reek of at-least-borderline fraud (four common kinds: 1. advertised price only applies to packages of a particular shape/color/size despite literally all the writing being the same; 2. "selected varieties" arbitrary excluding certain flavors/varieties which is impossible to check unless you can make the buggy app/webpage navigate through the huge list; 3. advertising a product not actually sold in the store (or removed for just this week) but then putting a similar-looking item on the shelf; 4. arbitrary limiting a particular digital coupon to the specific store in town you have selected, even though the exact same coupon is also available to those who select the other store). With a real employee, you have someone who both prompts and knows how to simple handle things like "did you enter your rewards card correctly?" [which can be done in parallel - though on one rare occasion they actually finalized the checkout, changing it to card-reader mode before I could finish entering it!], and is always available to handle errors immediately rather than requiring you to queue for customer service. Because of how frequent errors are (and just how terrible many customer-service people are at math), on the rare occasion that a pricing error is in my favor at a grocery store, I do not feel at all guilty about just taking it (all other kinds of IRL store have thus far dealt with me honestly so I remain obligated to do the same).