Failed to convert user vertex id for parameter error

Hello all.
My perfectly working installed queries are now throwing an error when passed a vertex id that does not exists in the DB. I’m getting this runtime error:

Failed to convert user vertex id for parameter keyHelper

For this query (as example):

CREATE QUERY updateHelperStatus(VERTEX<Helper> keyHelper, INT status) FOR GRAPH SimplifyPilotADEV { 
  EXCEPTION helperNotExists (40001);
  
  //Verify person exists
  start = {Helper.*};
  vPerson = SELECT s FROM start:s WHERE s == keyHelper;
  
  IF vPerson.size() == 0 THEN
      RAISE helperNotExists ("Helper does not exists in DB");
  END;
  
  keyHelper.status = status;
  
  PRINT vPerson; 
}

The error only raised when the keyHelper I’m passing is not found in the DB, otherwise - all is running OK. I want to check for existence within the query itself, by checking:

IF vPerson.size() == 0 THEN

And it worked until recently, but now this code in many queries does not even kick in due to the above error. TG Version: 3.4.0 What happened suddenly and how to avoid this?

@morsagmon You mentioned worked until recently. Does this mean you have been developing in 3.4.0 and then it stopped working. Or did you move TigerGraph DB version (ex. 3.4.0 → 3.5.0) and then the same query no longer worked?

It was developed on 3.4.0 and was working. No migration. Stopped suddenly without any intervention on my end.

@morsagmon Thanks for the follow up. That is very ODD behavior. Let me check with our Engineering Team if this type of incident has occurred in the past.

Hey Jon.
Any hint when this is fixed to get my queries running again?

@morsagmon Are you open to meeting with the Engineering Team to take a look at your logs? I can message you 1-1 via the forum for additional details.

Sure Jon, whatever I can do on my end, of course.
Note that this is TGCloud, I have no logs of my own :slight_smile:

Maybe for a start, they can spin up a 3.4.0 instance and replicate my query to see if it’s only on my instance (odd as it may sound) or something horizontal that got broken.

Ahh it is on cloud. I’ll spin up a box and try replicating it. At the same time I’ll reach out to you 1:1. You should see a notification on the top right.

@morsagmon Just to make sure I replicate the environment correctly. Can you tell me which options you choose below?

It is the expected error message when VERTEX<Helper> receives a non-existing vertex id.

Work-around is to use STRING parameter and function to_vertex_set(@@seed, "Comment");

CREATE OR REPLACE DISTRIBUTED QUERY updateHelperStatus(STRING keyHelper) {
  SetAccum<STRING> @@seed;
  @@seed += keyHelper;
  start = to_vertex_set(@@seed, "Helper");
  PRINT start.size();
} 

For example, see ldbc_snb_interactive_impls/interactiveShort6.gsql at main · ldbc/ldbc_snb_interactive_impls · GitHub
[/quote]

Thank you, Yuchen Zhang.
I’m pretty sure it worked like that, but anyways…
Btw, start is now a set of vertices (containing 1 vertex). How do I access this vertex to update its attributes?
start[0].status does not work.

You can use
PRINT start[start.status];

2 Likes