It's hard to say since your image is slightly distorted. A flatbed scan might produce a better image and a better answer. Without a precise image, it doesn't seem worthwhile to dig into the barcode spec and try to determine exactly what might be wrong. But it subjectively looks like the black lines are too narrow relative to the white spaces between. Maybe you're just barely getting away with this on other barcodes generated the same way as this one.
The ZXing app can't scan your original image or my attempt to clean it up. Notice how all the lines in the middle seem to be moved slightly toward the ends. That could just be foreshortening in your photo. ZXing easily detects another Code128 barcode that I created, even after it became fuzzy when I scaled it up. Look at the difference.
