Statement failed, SQLCODE = -901 invalid BLOB ID
This usually happens when you supply blob to stored procedure and use it in INSERT or UPDATE statement. After the statement, the BLOB data gets written to the database and gets real BLOB ID instead of temporary one - which invalidates the input variable. In other words, the input variable holds an invalid blob ID which doesn't point to any data - and you shouldn't be using it anymore. This problem is fixed in newer versions of Firebird.