CL_INVALID_KERNEL_ARGS error when everything is successful?

Below is the code I use to set my kernel arguments as well as enqueue the kernel. Why is it giving me invalid kernel arguments when all of the kernel arguments are returning CL_SUCCESS? I’ve also tried the code with only a single argument and it is still giving me the error, and then again with no arguments and I get CL_SUCCESS from clEnqueueNDRangeKernel.



    err = clSetKernelArg(kernel, 0, sizeof(cl_mem), (void*)&Q1cl);
    errCheck("Kernel Arg Q1: ", err);
    err = clSetKernelArg(kernel, 1, sizeof(cl_mem), (void*)&NtoFcl);
    errCheck("Kernel Arg NtoFcl: ", err);
    err = clSetKernelArg(kernel, 2, sizeof(cl_mem), (void*)&FtoNcl);
    errCheck("Kernel Arg FtoNcl: ", err);
    err = clSetKernelArg(kernel, 3, sizeof(cl_mem), (void*)&Drcl);
    errCheck("Kernel Arg Drcl: ", err);
    err = clSetKernelArg(kernel, 4, sizeof(cl_mem), (void*)&Dscl);
    errCheck("Kernel Arg Dscl: ", err);
    err = clSetKernelArg(kernel, 5, sizeof(cl_mem), (void*)&mapRcl);
    errCheck("Kernel Arg mapR: ", err);
    err = clSetKernelArg(kernel, 6, sizeof(cl_mem), (void*)&fQ1);
    errCheck("Kernel Arg fQ1: ", err);
    err = clSetKernelArg(kernel, 7, sizeof(cl_mem), (void*)&ffQ1);
    errCheck("Kernel Arg ffQ1: ", err);
    err = clSetKernelArg(kernel, 8, sizeof(cl_mem), (void*)&F1);
    errCheck("Kernel Arg F1: ", err);
    err = clSetKernelArg(kernel, 9, sizeof(cl_mem), (void*)&G1);
    errCheck("Kernel Arg G1: ", err);
    err = clSetKernelArg(kernel, 10, sizeof(cl_mem), (void*)&dQ1);
    errCheck("Kernel Arg dQ1: ", err);
    err = clSetKernelArg(kernel, 11, sizeof(cl_mem), (void*)&dQ1dr);
    errCheck("Kernel Arg dQ1dr: ", err);
    err = clSetKernelArg(kernel, 12, sizeof(cl_mem), (void*)&dQ1ds);
    errCheck("Kernel Arg dQ1dr: ", err);
    err = clSetKernelArg(kernel, 13, sizeof(cl_mem), (void*)&dQ1dx);
    errCheck("Kernel Arg dQ1dx: ", err);
    err = clSetKernelArg(kernel, 14, sizeof(cl_mem), (void*)&dQ1dy);
    errCheck("Kernel Arg dQ1dy: ", err);
    err = clSetKernelArg(kernel, 15, sizeof(cl_mem), (void*)&sxcl);
    errCheck("Kernel Arg sxcl: ", err);
    err = clSetKernelArg(kernel, 16, sizeof(cl_mem), (void*)&sycl);
    errCheck("Kernel Arg sycl: ", err);
    err = clSetKernelArg(kernel, 17, sizeof(cl_mem), (void*)&rxcl);
    errCheck("Kernel Arg rxcl: ", err);
    err = clSetKernelArg(kernel, 18, sizeof(cl_mem), (void*)&rycl);
    errCheck("Kernel Arg rycl: ", err);
    err = clSetKernelArg(kernel, 19, sizeof(cl_mem), (void*)&nxcl);
    errCheck("Kernel Arg nxcl: ", err);
    err = clSetKernelArg(kernel, 20, sizeof(cl_mem), (void*)&nycl);
    errCheck("Kernel Arg nycl: ", err);
    err = clSetKernelArg(kernel, 21, sizeof(cl_mem), (void*)&fluxQ1);
    errCheck("Kernel Arg flux: ", err);
    err = clSetKernelArg(kernel, 22, sizeof(cl_mem), (void*)&resQ1cl);
    errCheck("Kernel Arg resQ1: ", err);
    err = clSetKernelArg(kernel, 23, sizeof(cl_mem), (void*)&Fscalecl);
    errCheck("Kernel Arg Fscalecl: ", err);
    err = clSetKernelArg(kernel, 24, sizeof(cl_mem), (void*)&rk4bcl);
    errCheck("Kernel Arg rk4bcl: ", err);
    err = clSetKernelArg(kernel, 25, sizeof(cl_double), (void*)&dtcl);
    errCheck("Kernel Arg dtcl: ", err);

    for(i=0;i<device_counter;++i){
        err = clEnqueueNDRangeKernel(queue[i], kernel, 2, NULL, globalWorkSize, localWorkSize, 0, NULL, NULL);
        errCheck("EnqeuedNDRangeKernel device ", err);
    }


From this I get the results:


Kernel Arg Q1: : Success
Kernel Arg NtoFcl: : Success
Kernel Arg FtoNcl: : Success
Kernel Arg Drcl: : Success
Kernel Arg Dscl: : Success
Kernel Arg mapR: : Success
Kernel Arg fQ1: : Success
Kernel Arg ffQ1: : Success
Kernel Arg F1: : Success
Kernel Arg G1: : Success
Kernel Arg dQ1: : Success
Kernel Arg dQ1dr: : Success
Kernel Arg dQ1dr: : Success
Kernel Arg sxcl: : Success
Kernel Arg sycl: : Success
Kernel Arg rxcl: : Success
Kernel Arg rycl: : Success
Kernel Arg nxcl: : Success
Kernel Arg nycl: : Success
Kernel Arg flux: : Success
Kernel Arg resQ1: : Success
Kernel Arg Fscalecl: : Success
Kernel Arg rk4bcl: : Success
Kernel Arg dtcl: : Success
EnqeuedNDRangeKernel device : Invalid kernel arguments

Color me confused, because I am getting a CL_SUCCESS from every kernel argument.

The error occured because I had a rogue variable in my kernel function, removed and now it functions correctly. Please close.