I'm trying to send my first zero-value transaction with the javascript library. I took out "attachToTangle" from my ini, but now getting this error:

Uncaught Error: Request Error: inconsistent tips pair selected
at Object.requestError (iota.js:3702)
at makeRequest.prepareResult (iota.js:5153)
at XMLHttpRequest.request.onreadystatechange (iota.js:4933)

This is my function where I call the transfer:

function attachSensorVar(attachLogNum, attachDate, attachTime, attachSensorVar) {
let basilMessage = {
"log-num": attachLogNum,
"date": attachDate,
"time": attachTime,
"value": attachSensorVar

let basilMessageStringified = JSON.stringify(basilMessage);
let basilMessageTrytes = iota.utils.toTrytes(basilMessageStringified);

let transfer = [{
"address": basilAddress,
"value": 0,
"message": basilMessageTrytes

iota.api.sendTransfer(seed, 1, 14, transfer, function(e, bundle) {
if (e) throw e;
console.log("Successfully sent transfer: ", bundle);

What does "inconsistent tips pair selected" mean?

1 Answer 1


Looks like a bug in iri.

When you call getTransactionsToApprove (which is called by sendTransfer), iri will do some random MCMC walk to find the two transactions that your transaction should approve. Once the MCMC walk is finished, iri validates again that the two transactions do not conflict (one transacton tries to spend the same funds as the other). In theory, I believe this should never happen (as the second walk should only consider transactions that are not in conflict with the first one), but it seems that they did indeed conflict for you (or the check for conflicting transactions has a bug).

For now, just retry and it will probably work.

If you want to, you can file a bug

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.