In the Education System how to fix this error.

### App Versions

```

{

“education”: “15.0.0”,

“erpnext”: “15.105.0”,

“frappe”: “15.106.0”,

“hrms”: “15.59.1”

}

```

### Route

```

Form/Program Enrollment Tool/Program Enrollment Tool

```

### Traceback

```

Traceback (most recent call last):

File “apps/frappe/frappe/app.py”, line 120, in application

response = frappe.api.handle(request)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/api/_init_.py”, line 52, in handle

data = endpoint(\*\*arguments)

       ^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/api/v1.py”, line 40, in handle_rpc_call

return frappe.handler.handle()

       ^^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/handler.py”, line 53, in handle

data = execute_cmd(cmd)

       ^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/handler.py”, line 86, in execute_cmd

return frappe.call(method, \*\*frappe.form_dict)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/_init_.py”, line 1760, in call

return fn(\*args, \*\*newargs)

       ^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/handler.py”, line 340, in run_doc_method

response = doc.run_method(method)

           ^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/model/document.py”, line 1014, in run_method

out = Document.hook(fn)(self, \*args, \*\*kwargs)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/model/document.py”, line 1374, in composer

return composed(self, method, \*args, \*\*kwargs)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/model/document.py”, line 1356, in runner

add_to_return_value(self, fn(self, \*args, \*\*kwargs))

                          ^^^^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/model/document.py”, line 1011, in fn

return method_object(\*args, \*\*kwargs)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “apps/frappe/frappe/utils/typing_validations.py”, line 32, in wrapper

return func(\*args, \*\*kwargs)

       ^^^^^^^^^^^^^^^^^^^^^

File “apps/education/education/education/doctype/program_enrollment_tool/program_enrollment_tool.py”, line 44, in get_students

students = frappe.db.sql(

           ^^^^^^^^^^^^^^

File “apps/frappe/frappe/database/database.py”, line 230, in sql

self.\_cursor.execute(query, values)

File “env/lib/python3.11/site-packages/pymysql/cursors.py”, line 151, in execute

query = self.mogrify(query, args)

        ^^^^^^^^^^^^^^^^^^^^^^^^^

File “env/lib/python3.11/site-packages/pymysql/cursors.py”, line 129, in mogrify

query = query % self.\_escape_args(args, conn)

                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “env/lib/python3.11/site-packages/pymysql/cursors.py”, line 104, in _escape_args

return {key: conn.literal(val) for (key, val) in args.items()}

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “env/lib/python3.11/site-packages/pymysql/cursors.py”, line 104, in

return {key: conn.literal(val) for (key, val) in args.items()}

             ^^^^^^^^^^^^^^^^^

File “env/lib/python3.11/site-packages/pymysql/connections.py”, line 530, in literal

return self.escape(obj, self.encoders)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “env/lib/python3.11/site-packages/pymysql/connections.py”, line 523, in escape

return converters.escape_item(obj, self.charset, mapping=mapping)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “env/lib/python3.11/site-packages/pymysql/converters.py”, line 23, in escape_item

val = encoder(val, charset, mapping)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File “env/lib/python3.11/site-packages/pymysql/converters.py”, line 30, in escape_dict

raise TypeError("dict can not be used as parameter")

TypeError: dict can not be used as parameter

```

### Request Data

```

{

“type”: “POST”,

“args”: {

“docs”: “{\“name\”:\“Program Enrollment Tool\”,\“owner\”:\“Administrator\”,\“modified\”:\“2026-04-24 01:36:41.446890\”,\“modified_by\”:\“Administrator\”,\“docstatus\”:0,\“idx\”:\“0\”,\“get_students_from\”:\“Program Enrollment\”,\“doctype\”:\“Program Enrollment Tool\”,\“students\”:[],\”__onload\“:{\“academic_term_reqd\”:1},\”__last_sync_on\“:\“2026-05-15T09:21:44.229Z\”,\”__unsaved\“:1,\“program\”:\“YEAR 10\”,\“academic_year\”:\“2025 - 2026\”,\“academic_term\”:\“Year 2025 Semester 2\”,\“new_program\”:\“YEAR 11\”,\“enrollment_date\”:\“2026-01-05\”,\“new_academic_year\”:\“2026 - 2027\”,\“new_academic_term\”:\“Year 2026 Semester 1\”}”,

“method”: “get_students”

},

“headers”: {},

“error_handlers”: {},

“url”: “/api/method/run_doc_method”,

“request_id”: “1c862d61-a7db-4334-b95a-ae7253692e5c”

}

```

### Response Data

```

{

“exception”: “TypeError: dict can not be used as parameter”,

“exc_type”: “TypeError”,

“_exc_source”: “education (app)”

}

```

Check program_enrollment_tool.py around line 44 and ensure only simple values (strings, integers, etc.) are passed to frappe.db.sql(), not self.as_dict() or nested dictionaries such as __onload.