GEMMA DEVELOPER AGENTSAVED EVIDENCE
← Dataset Exploration
ARCHIVED TRAINING / sanic-org/sanic-ext

sanic-org__sanic-ext-154

This is a preserved training example. Membership in the current training wave has not been verified.
sanic-org/sanic-ext · Task 150 of 169

Problem statement

[Bug] Dependency injection not working for HEAD requests
**Describe the bug**
Sanic automatically creates `HEAD` endpoints, but dependencies are not injected into these endpoints, causing 500 errors when users HEAD these endpoints.

**Screenshots**
![image](https://user-images.githubusercontent.com/6646473/202834223-30bdbf41-1ae9-4a8e-91a2-091ae194ac56.png)


**To Reproduce**
```python
from sanic import Sanic
from sanic.response import text

app = Sanic('test')

class Foo:
    pass
    
app.ext.add_dependency(Foo, lambda *_: None)

@app.route('/download')
async def handler(req, foo: Foo):
    return text('file')
    
if __name__ == '__main__':
    app.run(port=4321, debug=True)
```

And then `curl -I http://127.0.0.1:4321/download`.

It shows an HTTP 500 response. Sanic reports the following error:

`TypeError: handler() missing 1 required positional argument: 'foo'`

**Expected behavior**

It should receive an HTTP 200 response.

**Environment (please complete the following information):**
 - OS: Windows-10-10.0.19045-SP0
 - Browser: curl 7.83.1
 - Version: Sanic 22.9.0, sanic-ext 22.9.0, sanic-routing 22.8.0

**Additional context**
Many downloaders send a HEAD request before actually downloading. This bug breaks these downloaders.

Training membership

opd_e4b_pure_v6b opd_e4b_pure_v7 opd_e4b_pure_v7b opd_e4b_self_audit_v4

Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.

Task and snapshot provenance

Snapshot captured 2026-11-12T17:06:59.476467+00:00 · Autoresearch-Arena/gemma-4-developer-agent

{
  "datasets": [
    "opd_e4b_pure_v6b",
    "opd_e4b_pure_v7",
    "opd_e4b_pure_v7b",
    "opd_e4b_self_audit_v4"
  ],
  "examples": 8,
  "instance_id": "sanic-org__sanic-ext-154",
  "problem_statement": "[Bug] Dependency injection not working for HEAD requests\n**Describe the bug**\r\nSanic automatically creates `HEAD` endpoints, but dependencies are not injected into these endpoints, causing 500 errors when users HEAD these endpoints.\r\n\r\n**Screenshots**\r\n![image](https://user-images.githubusercontent.com/6646473/202834223-30bdbf41-1ae9-4a8e-91a2-091ae194ac56.png)\r\n\r\n\r\n**To Reproduce**\r\n```python\r\nfrom sanic import Sanic\r\nfrom sanic.response import text\r\n\r\napp = Sanic('test')\r\n\r\nclass Foo:\r\n    pass\r\n    \r\napp.ext.add_dependency(Foo, lambda *_: None)\r\n\r\n@app.route('/download')\r\nasync def handler(req, foo: Foo):\r\n    return text('file')\r\n    \r\nif __name__ == '__main__':\r\n    app.run(port=4321, debug=True)\r\n```\r\n\r\nAnd then `curl -I http://127.0.0.1:4321/download`.\r\n\r\nIt shows an HTTP 500 response. Sanic reports the following error:\r\n\r\n`TypeError: handler() missing 1 required positional argument: 'foo'`\r\n\r\n**Expected behavior**\r\n\r\nIt should receive an HTTP 200 response.\r\n\r\n**Environment (please complete the following information):**\r\n - OS: Windows-10-10.0.19045-SP0\r\n - Browser: curl 7.83.1\r\n - Version: Sanic 22.9.0, sanic-ext 22.9.0, sanic-routing 22.8.0\r\n\r\n**Additional context**\r\nMany downloaders send a HEAD request before actually downloading. This bug breaks these downloaders.",
  "repo": "sanic-org/sanic-ext",
  "source": "v2/experiments/train_data/opd_e4b_pure_v6b/verified_rft_messages.jsonl",
  "source_sha256": "0f62460a9706eea5e1605255896f191ab00cb5706c5f1f2e1c293e9a718218dc"
}
{
  "captured_at": "2026-11-12T17:06:59.476467+00:00",
  "membership": "archived training",
  "membership_evidence": "Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.",
  "name": "Preserved post-training task archive",
  "source": "Autoresearch-Arena/gemma-4-developer-agent",
  "source_revision": "016496de222aaafca0d4ee4c18efc63ba616f76e",
  "sources": [
    {
      "path": "v2/experiments/train_data/opd_e4b_cispo_v5/verified_rft_messages.jsonl",
      "sha256": "a43610ad0dfb6ace95375cfae09000f41afc0338cc925af870a4ade7a9b20c4c"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_hybrid_v3/verified_rft_messages.jsonl",
      "sha256": "bd326303eb127e8e5e08f03daf97bb88d79d19709d59f3f93f348bc56686a8df"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_onpolicy_v3/verified_rft_messages.jsonl",
      "sha256": "960c680e797e823a0d3a22f4b1d5ef60a72971373d703b877340b0c9126aaf68"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v6a/verified_rft_messages.jsonl",
      "sha256": "f045b7ca5b3883a1e2eaee81e1c02a4a1b53dd7b7b36e98bacb2ba5823a15148"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v6b/verified_rft_messages.jsonl",
      "sha256": "0f62460a9706eea5e1605255896f191ab00cb5706c5f1f2e1c293e9a718218dc"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v7/verified_rft_messages.jsonl",
      "sha256": "e37f7bd675322f3f81500b73559d60d5f602ca0537bf19f5cb06332c728c7b72"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v7b/verified_rft_messages.jsonl",
      "sha256": "b864bdc8695183433eef6e31cb8d33fad44ba3aded2170c1ade4ad5b2944ce23"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_self_audit_v4/verified_rft_messages.jsonl",
      "sha256": "0026023745afb8f3dc1c176dc7f7171157b4ad5a66656b524af218e8e19ceee6"
    },
    {
      "path": "v2/experiments/train_data/rft_e4b_aligned_v2/verified_rft_messages.jsonl",
      "sha256": "92a4515fee9d152b0d4c510ee3ce4caaaffe2003ba7584469f8027f174aab18c"
    },
    {
      "path": "v2/experiments/train_data/rft_v1/verified_rft_messages.jsonl",
      "sha256": "a42453ccd7ac7680b0a03865e8e7080bc8bf74c8d9d193b440c441ed46f8512b"
    },
    {
      "path": "v2/experiments/train_data/rft_v2/verified_rft_messages.jsonl",
      "sha256": "18f4b3bd7e651f83c6acab479c9475e3fa50dc652a384f309e97146983ac85ba"
    }
  ]
}