No, you aren’t doing anything wrong. Sometimes if the price has not updated, being that an item has not been purchased to record data, on OSBuddy in the past 15 minutes (don’t quote me on that exactly, but it is within a specific time frame), the last cached value gets reset to a non existent price (-1). You should multi-cach these values, and have a static backup to reference to. Or you could create a method to obtain the buy-sell prices and go off of those.
EDIT:
Another thing you could do is do is try grabbing prices off of RuneScape’s GE database as a backup. Lots of things you can try!
Hope this helps!