I found the solution, there was a beforeUpdate hook that I did not know about or could not find, the hook was performing a findOne with an unidentified id field.
I found this by adding a log.trace('findOne') into node_modules/knex/lib/query/querycompiler.js line 109 after if (this._undefinedInWhereClause) { this gave me enough trace info to see exactly where the error was happening.