[C#] Export return error

I’ve written a function for both Insert and Select queries to my database and want to use the from other scripts. Now inserts seem to work without a problem but Select which has a return value throws me the huge stack trace and I’ve gotten nowhere with it.

This is the script calling the export

public class Class1 : BaseScript {
        public Class1 () {
            EventHandlers["playerConnecting"] += new Action<Player, string, dynamic, dynamic>(OnPlayerConnecting);
        }
        
        private void OnPlayerConnecting([FromSource]Player player, string playerName, dynamic setKickReason, dynamic deferrals) {
            string playerLicense = player.Identifiers["license"];

            List<object> playerData = Exports["sql"].SelectQueryHandler("SELECT * FROM users WHERE username = ?username", new List<object>() { playerName });

            Debug.WriteLine("playerData: " + playerData);

            if (playerData == null) {
                Exports["sql"].InsertQueryHandler("INSERT INTO users(username, licenseIdentifier) VALUES(?username, ?licenseIdentifier)", new List<object>() { playerName, playerLicense });
            }

            Debug.WriteLine("END OF ONPLAYERCONNECTING");
        }
    }

And this is the Select query handler

        public Class1() {
            Debug.WriteLine("STARTED SQLTEST");
            Exports.Add("SelectQueryHandler", new Func<string, List<object>, dynamic>( (query, parameters) => SelectQueryHandler(query, parameters) ));
            Exports.Add("InsertQueryHandler", new Action<string, List<object>>(        (query, parameters) => InsertQueryHandler(query, parameters) ));
        }
        public dynamic SelectQueryHandler(string query, List<object> parameters) {
            using (MySqlConnection db = new MySqlConnection(dbString)) {
                MySqlCommand cmd = new MySqlCommand(query, db);
                string[] parameterNames = getParameterNames(query);

                cmd.Connection.Open();

                for (int i = 0; i < parameters.Count; i++) {
                    Debug.WriteLine("parameterNames[" + i + "] " + parameterNames[i]);
                    Debug.WriteLine("parameters[" + i + "] " + parameters[i]);
                    cmd.Parameters.Add(new MySqlParameter(parameterNames[i], parameters[i]));
                }

                //loop through my sql parameters
                using (MySqlDataReader rdr = cmd.ExecuteReader()) {
                    if (!rdr.HasRows) { //if query returned nothing
                        return null;
                    }

                    DataTable dt = new DataTable();
                    dt.Load(rdr);

                    List<object> data = new List<object>();
                    object[] dataTable = new object[dt.Rows.Count];
                    dt.Rows.CopyTo(dataTable, 0);
                    data = dataTable.ToList<object>();

                    return data;
                }
            }
        }
parameterNames[0] ?username
parameters[0] Billy
System.ArgumentException: method arguments are incompatible


Server stack trace:
  at System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure, System.Boolean allowClosed) [0x002e3] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Delegate.CreateDelegate (System.Type type, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Delegate.CreateDelegate (System.Type type, System.Reflection.MethodInfo method) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Reflection.MonoProperty.CreateGetterDelegate (System.Reflection.MethodInfo method) [0x0005e] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Reflection.MonoProperty.GetValue (System.Object obj, System.Object[] index) [0x00053] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at CitizenFX.Core.MsgPackSerializer.Serialize (System.Object obj, MsgPack.Packer packer) [0x0025f] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\MsgPackSerializer.cs:140
  at CitizenFX.Core.MsgPackSerializer.Serialize (System.Object obj, MsgPack.Packer packer) [0x0015e] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\MsgPackSerializer.cs:108
  at CitizenFX.Core.MsgPackSerializer.Serialize (System.Object obj, MsgPack.Packer packer) [0x0015e] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\MsgPackSerializer.cs:108
  at CitizenFX.Core.MsgPackSerializer.Serialize (System.Object obj) [0x00020] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\MsgPackSerializer.cs:55
  at CitizenFX.Core.FunctionReference.Invoke (System.Int32 reference, System.Byte[] arguments) [0x00098] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\FunctionReference.cs:84
  at CitizenFX.Core.InternalManager.CallRef (System.Int32 refIndex, System.Byte[] argsSerialized, System.IntPtr& retvalSerialized, System.Int32& retvalSize) [0x00000] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\InternalManager.cs:258
  at (wrapper remoting-invoke-with-check) CitizenFX.Core.InternalManager:CallRef (int,byte[],intptr&,int&)
  at (wrapper xdomain-dispatch) CitizenFX.Core.InternalManager:CallRef (object,byte[]&,byte[]&,int,byte[],int&)

Exception rethrown at [0]:
  at (wrapper xdomain-invoke) CitizenFX.Core.InternalManager:CallRef (int,byte[],intptr&,int&)
  at (wrapper remoting-invoke-with-check) CitizenFX.Core.InternalManager:CallRef (int,byte[],intptr&,int&)
  at CitizenFX.Core.MonoScriptRuntime.CallRef (System.Int32 refIndex, System.Byte[] argsSerialized, System.Int32 argsSize, System.IntPtr& retvalSerialized, System.Int32& retvalSize) [0x00013] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\MonoScriptRuntime.cs:210
Error invoking callback for event Test: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentNullException: Value cannot be null.
Parameter name: src
  at (wrapper managed-to-native) System.Runtime.InteropServices.Marshal:copy_from_unmanaged (intptr,int,System.Array,int)
  at System.Runtime.InteropServices.Marshal.Copy (System.IntPtr source, System.Byte[] destination, System.Int32 startIndex, System.Int32 length) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at CitizenFX.Core.RemoteFunctionReference._InvokeNative (System.Byte[] argsSerialized) [0x00058] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\RemoteFunctionReference.cs:90
  at CitizenFX.Core.RemoteFunctionReference.InvokeNative (System.Byte[] argsSerialized) [0x00000] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\RemoteFunctionReference.cs:72
  at CitizenFX.Core.MsgPackDeserializer+<>c__DisplayClass36_0.<CreateRemoteFunctionReference>b__0 (System.Object[] args) [0x00007] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\MsgPackDeserializer.cs:267
  at (wrapper dynamic-method) System.Object:CallSite.Target (System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object,object[])
  at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet] (System.Runtime.CompilerServices.CallSite site, T0 arg0, T1 arg1) [0x0010f] in <48501e5f32e8491e924f8b8beae3e4f6>:0
  at CitizenFX.Core.ExportSet.TryInvokeMember (System.Dynamic.InvokeMemberBinder binder, System.Object[] args, System.Object& result) [0x000f3] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\ExportDictionary.cs:61
  at (wrapper dynamic-method) System.Object:CallSite.Target (System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object,string,System.Collections.Generic.List`1<object>)
  at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid3[T0,T1,T2] (System.Runtime.CompilerServices.CallSite site, T0 arg0, T1 arg1, T2 arg2) [0x00110] in <48501e5f32e8491e924f8b8beae3e4f6>:0
  at CharacterCreationServer.Class1.Test () [0x000b9] in <7e7a81560a874c7694b39a4406066fd0>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
   --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x000e7] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00008] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at CitizenFX.Core.EventHandlerEntry+<Invoke>d__5.MoveNext () [0x00064] in C:\gl\builds\4ff63adb\0\cfx\fivem\code\client\clrcore\EventHandlerDictionary.cs:85

if I call the function from the resource itself without the usage of exports everything worked but now transferring to exports has caused this error and from what I was able to debug it seems like the error is thrown when the export tries to give a value back.