You are viewing this question as it will appear in the manual grading interface. Return to the normal view when you are done.
Issue
User: Dev User (dev@example.com)
Student message: Error creating question variant
Instructor message: CourseIssueError: /PrairieLearn/testCourse/questions/brokenGeneration/server.py: Error calling generate(): Error: CodeCallerNative child process exited unexpectedly, code = 1, signal = null
ID: 32
Date: 2026-08-04 17:53:11 (CDT)
  • Console log:

    Traceback (most recent call last)
    /PrairieLearn/testCourse/questions/brokenGeneration/server.py:2 in generate
      1 def generate(_data):
    2     raise RuntimeError("deliberately broken generate function")
      3 
    RuntimeError: deliberately broken generate function
    
  • Associated data:

    {
        "course": {
            "id": "3",
            "path": "/PrairieLearn/testCourse",
            "title": "Test Course",
            "branch": "master",
            "options": {
                "devModeFeatures": {}
            },
            "created_at": {},
            "deleted_at": null,
            "repository": null,
            "short_name": "QA 101",
            "commit_hash": null,
            "sync_errors": null,
            "draft_number": 0,
            "json_comment": null,
            "sharing_name": null,
            "sharing_token": "3e5150cf-26fa-4a2c-8ea3-9dcb9754e124",
            "sync_warnings": "",
            "example_course": false,
            "institution_id": "1",
            "template_course": false,
            "display_timezone": "America/Chicago",
            "announcement_html": null,
            "announcement_color": null,
            "show_getting_started": false,
            "sync_job_sequence_id": null,
            "yearly_enrollment_limit": null,
            "questions_receive_user_data": true,
            "course_instance_enrollment_limit": null,
            "ai_grading_free_credit_redemptions_used": 0
        },
        "variant": {
            "id": "1585",
            "date": {},
            "open": true,
            "broken": true,
            "number": 1,
            "params": {},
            "options": {},
            "team_id": null,
            "user_id": "1",
            "duration": 0,
            "broken_at": {},
            "broken_by": null,
            "course_id": "3",
            "num_tries": 0,
            "modified_at": {},
            "preferences": {},
            "question_id": "198",
            "true_answer": {},
            "variant_seed": "1bh2y21",
            "workspace_id": null,
            "authn_user_id": "1",
            "first_duration": null,
            "course_instance_id": "3",
            "instance_question_id": null,
            "client_fingerprint_id": null
        },
        "question": {
            "id": "198",
            "qid": "brokenGeneration",
            "type": "Freeform",
            "uuid": "a2f12dbe-e030-4782-87aa-713d61728539",
            "draft": false,
            "title": "Broken generation function",
            "number": 297,
            "options": null,
            "topic_id": "33",
            "course_id": "3",
            "directory": "brokenGeneration",
            "deleted_at": null,
            "sync_errors": null,
            "client_files": [
                "client.js",
                "question.html",
                "answer.html"
            ],
            "dependencies": {},
            "json_comment": null,
            "sync_warnings": "",
            "grading_method": "Internal",
            "partial_credit": true,
            "share_publicly": false,
            "single_variant": false,
            "workspace_args": null,
            "workspace_home": null,
            "workspace_port": null,
            "workspace_image": null,
            "preferences_schema": null,
            "template_directory": null,
            "show_correct_answer": true,
            "sync_job_sequence_id": null,
            "share_source_publicly": false,
            "workspace_environment": {},
            "workspace_url_rewrite": null,
            "external_grading_files": [],
            "external_grading_image": null,
            "json_workspace_comment": null,
            "workspace_graded_files": [],
            "external_grading_timeout": null,
            "external_grading_entrypoint": null,
            "workspace_enable_networking": false,
            "external_grading_environment": {},
            "json_external_grading_comment": null,
            "external_grading_enable_networking": false
        }
    }
  • System data:

    {
        "stack": "CourseIssueError: /PrairieLearn/testCourse/questions/brokenGeneration/server.py: Error calling generate(): Error: CodeCallerNative child process exited unexpectedly, code = 1, signal = null\n    at processQuestionServer (file:///PrairieLearn/apps/prairielearn/dist/question-servers/freeform.js:503:27)\n    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n    at async instrumentedWithMetrics (file:///PrairieLearn/packages/opentelemetry/dist/metrics.js:47:16)\n    at async file:///PrairieLearn/apps/prairielearn/dist/question-servers/freeform.js:623:56\n    at async withCodeCaller (file:///PrairieLearn/apps/prairielearn/dist/lib/code-caller/index.js:159:20)\n    at async file:///PrairieLearn/apps/prairielearn/dist/question-servers/freeform.js:622:16\n    at async file:///PrairieLearn/packages/opentelemetry/dist/tracing.js:7:28\n    at async makeVariant (file:///PrairieLearn/apps/prairielearn/dist/lib/question-variant.js:43:36)\n    at async makeAndInsertVariant (file:///PrairieLearn/apps/prairielearn/dist/lib/question-variant.js:162:52)\n    at async ensureVariant (file:///PrairieLearn/apps/prairielearn/dist/lib/question-variant.js:263:12)\n    at async file:///PrairieLearn/apps/prairielearn/dist/lib/question-render.js:293:20\n    at async getAndRenderVariant (file:///PrairieLearn/apps/prairielearn/dist/lib/question-render.js:277:21)\n    at async file:///PrairieLearn/apps/prairielearn/dist/pages/instructorQuestionPreview/instructorQuestionPreview.js:49:5",
        "courseErrData": {
            "stack": "Error\n    at CodeCallerNative._errorData (file:///PrairieLearn/apps/prairielearn/dist/lib/code-caller/code-caller-native.js:533:29)\n    at CodeCallerNative._callCallback (file:///PrairieLearn/apps/prairielearn/dist/lib/code-caller/code-caller-native.js:460:29)\n    at CodeCallerNative._handleChildExit (file:///PrairieLearn/apps/prairielearn/dist/lib/code-caller/code-caller-native.js:374:18)\n    at ChildProcess.emit (node:events:509:28)\n    at ChildProcess._handle.onexit (node:internal/child_process:295:12)",
            "outputBoth": "\u001b[2mTraceback \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mmost recent call last\u001b[0m\u001b[1;2m)\u001b[0m\n\u001b[2m/PrairieLearn/testCourse/questions/brokenGeneration/\u001b[0m\u001b[1mserver.py\u001b[0m:2 in generate\n  \u001b[2m1 \u001b[0m\u001b[94mdef\u001b[0m\u001b[90m \u001b[0m\u001b[92mgenerate\u001b[0m(_data):\n\u001b[31m❱ \u001b[0m2     \u001b[1;4;94mraise\u001b[0m\u001b[1;4m \u001b[0m\u001b[1;4;96mRuntimeError\u001b[0m\u001b[1;4m(\u001b[0m\u001b[1;4;33m\"\u001b[0m\u001b[1;4;33mdeliberately broken generate function\u001b[0m\u001b[1;4;33m\"\u001b[0m\u001b[1;4m)\u001b[0m\n  \u001b[2m3 \u001b[0m\n\u001b[1;91mRuntimeError: \u001b[0mdeliberately broken generate function\n",
            "outputData": "",
            "childIsNull": true,
            "lastCallData": {
                "cwd": "/PrairieLearn/testCourse/questions/brokenGeneration",
                "fcn": "generate",
                "args": [
                    {
                        "params": {},
                        "options": {
                            "user": {
                                "uid": "dev@example.com",
                                "uin": "000000000",
                                "name": "Dev User"
                            },
                            "group": null,
                            "question_path": "/PrairieLearn/testCourse/questions/brokenGeneration",
                            "course_extensions_path": "/PrairieLearn/testCourse/elementExtensions",
                            "client_files_course_path": "/PrairieLearn/testCourse/clientFilesCourse",
                            "server_files_course_path": "/PrairieLearn/testCourse/serverFilesCourse",
                            "client_files_question_path": "/PrairieLearn/testCourse/questions/brokenGeneration/clientFilesQuestion"
                        },
                        "preferences": {},
                        "variant_seed": 2870601193,
                        "correct_answers": {}
                    }
                ],
                "file": "server",
                "paths": [
                    "/PrairieLearn/apps/prairielearn/python",
                    "/PrairieLearn/testCourse/serverFilesCourse"
                ],
                "forbidden_modules": []
            },
            "outputStderr": "\u001b[2mTraceback \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mmost recent call last\u001b[0m\u001b[1;2m)\u001b[0m\n\u001b[2m/PrairieLearn/testCourse/questions/brokenGeneration/\u001b[0m\u001b[1mserver.py\u001b[0m:2 in generate\n  \u001b[2m1 \u001b[0m\u001b[94mdef\u001b[0m\u001b[90m \u001b[0m\u001b[92mgenerate\u001b[0m(_data):\n\u001b[31m❱ \u001b[0m2     \u001b[1;4;94mraise\u001b[0m\u001b[1;4m \u001b[0m\u001b[1;4;96mRuntimeError\u001b[0m\u001b[1;4m(\u001b[0m\u001b[1;4;33m\"\u001b[0m\u001b[1;4;33mdeliberately broken generate function\u001b[0m\u001b[1;4;33m\"\u001b[0m\u001b[1;4m)\u001b[0m\n  \u001b[2m3 \u001b[0m\n\u001b[1;91mRuntimeError: \u001b[0mdeliberately broken generate function\n",
            "outputStdout": "",
            "outputRestart": "",
            "callbackIsNull": false,
            "timeoutIDIsNull": true
        }
    }

Broken generation function

Broken question due to error in question code

Correct answer

Broken question due to error in question code

Student view placeholder

In student views this area is used for assessment and score info.
Tools

Staff information

Question

Title:
Broken generation function

Variant

Started at:
2026-08-04 17:53:11 (CDT)
Duration:
0s
Show/Hide answer
{}
History
dec frac
rad deg