Help me, i have problem with looping, also with while_v2 and if_v2, and storeText

I am learning to create ui vision macros. I intend to create a macro to copy the link of the image upload result on imgur, the link result will be saved in csv, and the image “path” is in the same csv.

the columns in the csv only consist of: No, Done, URL, Name, Image_Path.

the approximate description is like this: the system runs → reads csv → checks the line to be executed, if there is done in that line then jumps to the bottom line, if no the execution process starts in that line → the system opens the web → uploads the image according to the path on the line being worked on → after success → copy the link (not in the www search column, but more like in the text box on the website) the uploaded image → enter the copied results into csv in the url column → have made sure the url column is filled, write done in the done column → loop to the next line

I wrote it like this:
{
“Name”: “imegur”,
“CreationDate”: “2025-4-2”,
“Commands”: [
{
“Command”: “store”,
“Target”: “FAST”,
“Value”: “!ReplaySpeed”,
“Description”: “”
},
{
“Command”: “store”,
“Target”: “true”,
“Value”: “!ErrorIgnore”,
“Description”: “”
},
{
“Command”: “comment”,
“Target”: “Load Data Produk; Ganti Target dengan Nama File CSV”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “store”,
“Target”: “file gambar 1”,
“Value”: “csvFile”,
“Description”: “”
},
{
“Command”: “csvReadArray”,
“Target”: “${csvFile}”,
“Value”: “csvProduct”,
“Description”: “”
},
{
“Command”: “executeScript_Sandbox”,
“Target”: “return ${csvProduct[0]}.indexOf(‘Done’)”,
“Value”: “doneColumn”,
“Description”: “”
},
{
“Command”: “executeScript_Sandbox”,
“Target”: “return ${csvProduct[0]}.indexOf(‘No’)”,
“Value”: “nomorColumn”,
“Description”: “”
},
{
“Command”: “executeScript_Sandbox”,
“Target”: “return ${csvProduct[0]}.indexOf(‘URL’)”,
“Value”: “urlColumn”,
“Description”: “”
},
{
“Command”: “executeScript_Sandbox”,
“Target”: “return ${csvProduct[0]}.indexOf(‘Nama_Produk’)”,
“Value”: “namaColumn”,
“Description”: “”
},
{
“Command”: “executeScript_Sandbox”,
“Target”: “return ${csvProduct[0]}.indexOf(‘Image_Path_1’)”,
“Value”: “imagePathColumn”,
“Description”: “”
},
{
“Command”: “store”,
“Target”: “0”,
“Value”: “activeRow”,
“Description”: “”
},
{
“Command”: “store”,
“Target”: “${!csvReadMaxRow}”,
“Value”: “maxRow”,
“Description”: “”
},
{
“Command”: “executeScript_Sandbox”,
“Target”: “return ${csvProduct[${activeRow}]}”,
“Value”: “rowProduct”,
“Description”: “”
},
{
“Command”: “while_v2”,
“Target”: “${activeRow} < ${maxRow}”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “if_v2”,
“Target”: “${csvProduct[${activeRow}][${doneColumn}]} != ‘Done’ && ${csvProduct[${activeRow}][${urlColumn}]} == ‘’”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “open”,
“Target”: “Imgur: The magic of the Internet”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “pause”,
“Target”: “5000”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “click”,
“Target”: “//[@id="root"]/div/div[2]/div/div/div/div/div[1]/div[2]/label",
“Value”: “”,
“Description”: “”
},
{
“Command”: “waitForElementPresent”,
“Target”: "//
[@id="file-input"]”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “type”,
“Target”: “//[@id="file-input"]",
“Value”: “${rowProduct[${imagePathColumn}]}”,
“Description”: “”
},
{
“Command”: “pause”,
“Target”: “5000”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “storeText”,
“Target”: "//
[@id="root"]/div/div[1]/div/div[5]/div[2]/div/div[1]/div[1]/div[2]/input”,
“Value”: “urlProductResult”,
“Description”: “”
},
{
“Command”: “executeScript_Sandbox”,
“Target”: “let aHead = ${arrHeaderCSV};\nlet aSpec = new Array(${arrHeaderCSV}.length).fill(null);\naSpec[aHead.indexOf(‘No’)] = ${activeRow};\naSpec[aHead.indexOf(‘Link’)] = ‘${urlProductResult}’;\naSpec[aHead.indexOf(‘Harga’)] = ${hargaProduk};\n\nreturn aSpec;”,
“Value”: “arrSpec”,
“Description”: “”
},
{
“Command”: “executeScript”,
“Target”: “var newArr = ${csvProduct};\nnewArr.push(${arrSpec});\nreturn newArr;”,
“Value”: “csvProduct”,
“Description”: “”
},
{
“Command”: “csvSaveArray”,
“Target”: “csvProduct”,
“Value”: “${csvFile}”,
“Description”: “”
},
{
“Command”: “store”,
“Target”: “1”,
“Value”: “activeRow”,
“Description”: “”
},
{
“Command”: “end”,
“Target”: “”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “end”,
“Target”: “”,
“Value”: “”,
“Description”: “”
},
{
“Command”: “open”,
“Target”: “Imgur: The magic of the Internet”,
“Value”: “”,
“Description”: “”
}
]
}

where did I go wrong and where should I fix it?