#1 by Scott
Hi there, trying to deploy to MTurk, but get the error below when trying to Publish HIT to sandbox: WSL Ubuntu: 22.04 otree: 5.10.1 (Installed otree[mturk]) python: 3.9.15 Error: Exception in ASGI application Traceback (most recent call last): File "/mnt/d/venv/otree5p9/lib/python3.9/site-packages/otree/mturk_client.py", line 144, in call_api resp = urlopen(request, data=request_body) File "/usr/lib/python3.9/urllib/request.py", line 214, in urlopen return opener.open(url, data, timeout) File "/usr/lib/python3.9/urllib/request.py", line 523, in open response = meth(req, response) File "/usr/lib/python3.9/urllib/request.py", line 632, in http_response response = self.parent.error( File "/usr/lib/python3.9/urllib/request.py", line 561, in error return self._call_chain(*args) File "/usr/lib/python3.9/urllib/request.py", line 494, in _call_chain result = func(*args) File "/usr/lib/python3.9/urllib/request.py", line 641, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 400: Bad Request During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/mnt/d/venv/otree5p9/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 396, in run_asgi result = await app(self.scope, self.receive, self.send) File "/mnt/d/venv/otree5p9/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__ return await self.app(scope, receive, send) File "/mnt/d/venv/otree5p9/lib/python3.9/site-packages/starlette/applications.py", line 112, in __call__ await self.middleware_stack(scope, receive, send) ... ... File "/mnt/d/venv/otree5p9/lib/python3.9/site-packages/otree/views/mturk.py", line 133, in post hit = TurkClient.create_hit(mturk_hit_parameters, use_sandbox=use_sandbox)[ File "/mnt/d/venv/otree5p9/lib/python3.9/site-packages/otree/mturk_client.py", line 167, in create_hit return call_api('CreateHIT', request_params, use_sandbox=use_sandbox) File "/mnt/d/venv/otree5p9/lib/python3.9/site-packages/otree/mturk_client.py", line 146, in call_api msg = json.loads(exc.read().decode('utf8'))['Message'] KeyError: 'Messag Any ideas? Thanks
#2 by Chris_oTree
Can you put a print statement in this file: /mnt/d/venv/otree5p9/lib/python3.9/site-packages/otree/mturk_client.py Before that line in the traceback, put: print(exc.read().decode('utf8')) What is the output?
#3 by Scott
Hi Chris, this is the output: {"__type":"UnrecognizedClientException","message":"The security token included in the request is invalid."} I guess this points to invalid AWS keys - I made a couple up for testing. My keys are: AWS_SECRET_ACCESS_KEY=asfdghhj AWS_ACCESS_KEY_ID=swinljnsov The key creation instructions here: https://otree.readthedocs.io/en/latest/mturk.html#local-sandbox-testing look very different to the ones on the current AWS site, and the link to the AWS site no longer works. I couldn't figure out how to generate them using the AWS Certificate Manager. Any pointers would be much appreciated. Thanks
#4 by Scott
... Sorry, I meant the Key Manager Service (Not ACM)