Hi everybody,
I’ve been following your advice to deploy my model on heroku, especially yours @AGSL and it seemed to work well, as the debugging message was:
Warning: Your slug size (389 MB) exceeds our soft limit (300 MB) which may affect boot time.
Released v5
https://bear-app69.herokuapp.com/ deployed to Heroku
even if I had this warning message, it was well deployed.
Then I try to open my app, but I got this message everytime I’ve tried:
“There was an error when executing cell [2]. Please run Voilà with --show_tracebacks=True or --debug to see the error message, or configure VoilaConfiguration.show_tracebacks.”
and the log message is:
2021-06-08T12:47:12.796398+00:00 app[web.1]: [Voila] Writing notebook-signing key to /app/.local/share/jupyter/notebook_secret
2021-06-08T12:47:12.797089+00:00 app[web.1]: [Voila] WARNING | Notebook bear_classifier.ipynb is not trusted
2021-06-08T12:47:12.805861+00:00 app[web.1]: [Voila] WARNING | Could not find a kernel named ‘fastai’, will use ‘python3’
2021-06-08T12:47:13.065290+00:00 app[web.1]: [Voila] Kernel started: a9b94e88-cf4c-4b63-97bf-566db2ff199e
2021-06-08T12:47:18.551524+00:00 app[web.1]: [Voila] ERROR | Error at server while executing cell: {‘cell_type’: ‘code’, ‘execution_count’: 2, ‘id’: ‘eb6585ea’, ‘metadata’: {‘trusted’: False, ‘execution’: {‘iopub.status.busy’: ‘2021-06-08T12:47:18.205440Z’, ‘iopub.execute_input’: ‘2021-06-08T12:47:18.206177Z’, ‘shell.execute_reply’: ‘2021-06-08T12:47:18.548654Z’, ‘iopub.status.idle’: ‘2021-06-08T12:47:18.550045Z’}}, ‘outputs’: [{‘output_type’: ‘error’, ‘ename’: ‘UnpicklingError’, ‘evalue’: “invalid load key, ‘v’.”, ‘traceback’: [’\x1b[0;31m---------------------------------------------------------------------------\x1b[0m’, ‘\x1b[0;31mUnpicklingError\x1b[0m Traceback (most recent call last)’, “\x1b[0;32m\x1b[0m in \x1b[0;36m\x1b[0;34m\x1b[0m\n\x1b[1;32m 1\x1b[0m \x1b[0mpath\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mPath\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0;32m----> 2\x1b[0;31m \x1b[0mlearn_inf\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mload_learner\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0mpath\x1b[0m\x1b[0;34m/\x1b[0m\x1b[0;34m’export.pkl’\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0mcpu\x1b[0m\x1b[0;34m=\x1b[0m\x1b[0;32mTrue\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0m\x1b[1;32m 3\x1b[0m \x1b[0mbtn_upload\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mwidgets\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mFileUpload\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[1;32m 4\x1b[0m \x1b[0mout_pl\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mwidgets\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mOutput\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[1;32m 5\x1b[0m \x1b[0mlbl_pred\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mwidgets\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mLabel\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n”, ‘\x1b[0;32m~/.heroku/python/lib/python3.9/site-packages/fastai/learner.py\x1b[0m in \x1b[0;36mload_learner\x1b[0;34m(fname, cpu, pickle_module)\x1b[0m\n\x1b[1;32m 379\x1b[0m \x1b[0;34m"Load a Learner
object in fname
, optionally putting it on the cpu
"\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[1;32m 380\x1b[0m \x1b[0mdistrib_barrier\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0;32m–> 381\x1b[0;31m \x1b[0mres\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mtorch\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mload\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0mfname\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0mmap_location\x1b[0m\x1b[0;34m=\x1b[0m\x1b[0;34m’cpu’\x1b[0m \x1b[0;32mif\x1b[0m \x1b[0mcpu\x1b[0m \x1b[0;32melse\x1b[0m \x1b[0;32mNone\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0mpickle_module\x1b[0m\x1b[0;34m=\x1b[0m\x1b[0mpickle_module\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0m\x1b[1;32m 382\x1b[0m \x1b[0;32mif\x1b[0m \x1b[0mhasattr\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0mres\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0;34m’to_fp32’\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m:\x1b[0m \x1b[0mres\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mres\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mto_fp32\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[1;32m 383\x1b[0m \x1b[0;32mif\x1b[0m \x1b[0mcpu\x1b[0m\x1b[0;34m:\x1b[0m \x1b[0mres\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mdls\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mcpu\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n’, ‘\x1b[0;32m~/.heroku/python/lib/python3.9/site-packages/torch/serialization.py\x1b[0m in \x1b[0;36mload\x1b[0;34m(f, map_location, pickle_module, pickle_load_args)\x1b[0m\n\x1b[1;32m 591\x1b[0m \x1b[0;32mreturn\x1b[0m \x1b[0mtorch\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mjit\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mload\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0mopened_file\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[1;32m 592\x1b[0m \x1b[0;32mreturn\x1b[0m \x1b[0m_load\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0mopened_zipfile\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0mmap_location\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0mpickle_module\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0;34m\x1b[0m\x1b[0mpickle_load_args\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0;32m–> 593\x1b[0;31m \x1b[0;32mreturn\x1b[0m \x1b[0m_legacy_load\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0mopened_file\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0mmap_location\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0mpickle_module\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0;34m**\x1b[0m\x1b[0mpickle_load_args\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0m\x1b[1;32m 594\x1b[0m \x1b[0;34m\x1b[0m\x1b[0m\n\x1b[1;32m 595\x1b[0m \x1b[0;34m\x1b[0m\x1b[0m\n’, ‘\x1b[0;32m~/.heroku/python/lib/python3.9/site-packages/torch/serialization.py\x1b[0m in \x1b[0;36m_legacy_load\x1b[0;34m(f, map_location, pickle_module, pickle_load_args)\x1b[0m\n\x1b[1;32m 760\x1b[0m “functionality.”)\n\x1b[1;32m 761\x1b[0m \x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0;32m–> 762\x1b[0;31m \x1b[0mmagic_number\x1b[0m \x1b[0;34m=\x1b[0m \x1b[0mpickle_module\x1b[0m\x1b[0;34m.\x1b[0m\x1b[0mload\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0mf\x1b[0m\x1b[0;34m,\x1b[0m \x1b[0;34m\x1b[0m\x1b[0mpickle_load_args\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[0m\x1b[1;32m 763\x1b[0m \x1b[0;32mif\x1b[0m \x1b[0mmagic_number\x1b[0m \x1b[0;34m!=\x1b[0m \x1b[0mMAGIC_NUMBER\x1b[0m\x1b[0;34m:\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n\x1b[1;32m 764\x1b[0m \x1b[0;32mraise\x1b[0m \x1b[0mRuntimeError\x1b[0m\x1b[0;34m(\x1b[0m\x1b[0;34m"Invalid magic number; corrupt file?"\x1b[0m\x1b[0;34m)\x1b[0m\x1b[0;34m\x1b[0m\x1b[0;34m\x1b[0m\x1b[0m\n’, “\x1b[0;31mUnpicklingError\x1b[0m: invalid load key, ‘v’.”]}], ‘source’: “path = Path()\nlearn_inf = load_learner(path/‘export.pkl’, cpu=True)\nbtn_upload = widgets.FileUpload()\nout_pl = widgets.Output()\nlbl_pred = widgets.Label()”}
2021-06-08T12:47:18.551536+00:00 app[web.1]: Traceback (most recent call last):
2021-06-08T12:47:18.551536+00:00 app[web.1]: File “/app/.heroku/python/lib/python3.9/site-packages/voila/handler.py”, line 209, in _jinja_cell_generator
2021-06-08T12:47:18.551537+00:00 app[web.1]: output_cell = await task
2021-06-08T12:47:18.551537+00:00 app[web.1]: File “/app/.heroku/python/lib/python3.9/site-packages/voila/execute.py”, line 69, in execute_cell
2021-06-08T12:47:18.551538+00:00 app[web.1]: result = await self.async_execute_cell(cell, cell_index, store_history)
2021-06-08T12:47:18.551538+00:00 app[web.1]: File “/app/.heroku/python/lib/python3.9/site-packages/nbclient/client.py”, line 857, in async_execute_cell
2021-06-08T12:47:18.551539+00:00 app[web.1]: self._check_raise_for_error(cell, exec_reply)
2021-06-08T12:47:18.551539+00:00 app[web.1]: File “/app/.heroku/python/lib/python3.9/site-packages/nbclient/client.py”, line 760, in _check_raise_for_error
2021-06-08T12:47:18.551539+00:00 app[web.1]: raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
2021-06-08T12:47:18.551540+00:00 app[web.1]: nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
2021-06-08T12:47:18.551540+00:00 app[web.1]: ------------------
2021-06-08T12:47:18.551540+00:00 app[web.1]: path = Path()
2021-06-08T12:47:18.551541+00:00 app[web.1]: learn_inf = load_learner(path/‘export.pkl’, cpu=True)
2021-06-08T12:47:18.551541+00:00 app[web.1]: btn_upload = widgets.FileUpload()
2021-06-08T12:47:18.551541+00:00 app[web.1]: out_pl = widgets.Output()
2021-06-08T12:47:18.551541+00:00 app[web.1]: lbl_pred = widgets.Label()
2021-06-08T12:47:18.551542+00:00 app[web.1]: ------------------
2021-06-08T12:47:18.551542+00:00 app[web.1]:
2021-06-08T12:47:18.551542+00:00 app[web.1]: e[0;31m---------------------------------------------------------------------------e[0m
2021-06-08T12:47:18.551542+00:00 app[web.1]: e[0;31mUnpicklingErrore[0m Traceback (most recent call last)
2021-06-08T12:47:18.551543+00:00 app[web.1]: e[0;32me[0m in e[0;36me[0;34me[0m
2021-06-08T12:47:18.551543+00:00 app[web.1]: e[1;32m 1e[0m e[0mpathe[0m e[0;34m=e[0m e[0mPathe[0me[0;34m(e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551544+00:00 app[web.1]: e[0;32m----> 2e[0;31m e[0mlearn_infe[0m e[0;34m=e[0m e[0mload_learnere[0me[0;34m(e[0me[0mpathe[0me[0;34m/e[0me[0;34m’export.pkl’e[0me[0;34m,e[0m e[0mcpue[0me[0;34m=e[0me[0;32mTruee[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551545+00:00 app[web.1]: e[0me[1;32m 3e[0m e[0mbtn_uploade[0m e[0;34m=e[0m e[0mwidgetse[0me[0;34m.e[0me[0mFileUploade[0me[0;34m(e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551545+00:00 app[web.1]: e[1;32m 4e[0m e[0mout_ple[0m e[0;34m=e[0m e[0mwidgetse[0me[0;34m.e[0me[0mOutpute[0me[0;34m(e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551546+00:00 app[web.1]: e[1;32m 5e[0m e[0mlbl_prede[0m e[0;34m=e[0m e[0mwidgetse[0me[0;34m.e[0me[0mLabele[0me[0;34m(e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551546+00:00 app[web.1]:
2021-06-08T12:47:18.551546+00:00 app[web.1]: e[0;32m~/.heroku/python/lib/python3.9/site-packages/fastai/learner.pye[0m in e[0;36mload_learnere[0;34m(fname, cpu, pickle_module)e[0m
2021-06-08T12:47:18.551546+00:00 app[web.1]: e[1;32m 379e[0m e[0;34m"Load a Learner
object in fname
, optionally putting it on the cpu
"e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551552+00:00 app[web.1]: e[1;32m 380e[0m e[0mdistrib_barriere[0me[0;34m(e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551553+00:00 app[web.1]: e[0;32m–> 381e[0;31m e[0mrese[0m e[0;34m=e[0m e[0mtorche[0me[0;34m.e[0me[0mloade[0me[0;34m(e[0me[0mfnamee[0me[0;34m,e[0m e[0mmap_locatione[0me[0;34m=e[0me[0;34m’cpu’e[0m e[0;32mife[0m e[0mcpue[0m e[0;32melsee[0m e[0;32mNonee[0me[0;34m,e[0m e[0mpickle_modulee[0me[0;34m=e[0me[0mpickle_modulee[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551554+00:00 app[web.1]: e[0me[1;32m 382e[0m e[0;32mife[0m e[0mhasattre[0me[0;34m(e[0me[0mrese[0me[0;34m,e[0m e[0;34m’to_fp32’e[0me[0;34m)e[0me[0;34m:e[0m e[0mrese[0m e[0;34m=e[0m e[0mrese[0me[0;34m.e[0me[0mto_fp32e[0me[0;34m(e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551561+00:00 app[web.1]: e[1;32m 383e[0m e[0;32mife[0m e[0mcpue[0me[0;34m:e[0m e[0mrese[0me[0;34m.e[0me[0mdlse[0me[0;34m.e[0me[0mcpue[0me[0;34m(e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551561+00:00 app[web.1]:
2021-06-08T12:47:18.551561+00:00 app[web.1]: e[0;32m~/.heroku/python/lib/python3.9/site-packages/torch/serialization.pye[0m in e[0;36mloade[0;34m(f, map_location, pickle_module, pickle_load_args)e[0m
2021-06-08T12:47:18.551562+00:00 app[web.1]: e[1;32m 591e[0m e[0;32mreturne[0m e[0mtorche[0me[0;34m.e[0me[0mjite[0me[0;34m.e[0me[0mloade[0me[0;34m(e[0me[0mopened_filee[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551562+00:00 app[web.1]: e[1;32m 592e[0m e[0;32mreturne[0m e[0m_loade[0me[0;34m(e[0me[0mopened_zipfilee[0me[0;34m,e[0m e[0mmap_locatione[0me[0;34m,e[0m e[0mpickle_modulee[0me[0;34m,e[0m e[0;34me[0me[0mpickle_load_argse[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551562+00:00 app[web.1]: e[0;32m–> 593e[0;31m e[0;32mreturne[0m e[0m_legacy_loade[0me[0;34m(e[0me[0mopened_filee[0me[0;34m,e[0m e[0mmap_locatione[0me[0;34m,e[0m e[0mpickle_modulee[0me[0;34m,e[0m e[0;34m**e[0me[0mpickle_load_argse[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551563+00:00 app[web.1]: e[0me[1;32m 594e[0m e[0;34me[0me[0m
2021-06-08T12:47:18.551563+00:00 app[web.1]: e[1;32m 595e[0m e[0;34me[0me[0m
2021-06-08T12:47:18.551563+00:00 app[web.1]:
2021-06-08T12:47:18.551563+00:00 app[web.1]: e[0;32m~/.heroku/python/lib/python3.9/site-packages/torch/serialization.pye[0m in e[0;36m_legacy_loade[0;34m(f, map_location, pickle_module, pickle_load_args)e[0m
2021-06-08T12:47:18.551563+00:00 app[web.1]: e[1;32m 760e[0m “functionality.”)
2021-06-08T12:47:18.551564+00:00 app[web.1]: e[1;32m 761e[0m e[0;34me[0me[0m
2021-06-08T12:47:18.551564+00:00 app[web.1]: e[0;32m–> 762e[0;31m e[0mmagic_numbere[0m e[0;34m=e[0m e[0mpickle_modulee[0me[0;34m.e[0me[0mloade[0me[0;34m(e[0me[0mfe[0me[0;34m,e[0m e[0;34me[0me[0mpickle_load_argse[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551564+00:00 app[web.1]: e[0me[1;32m 763e[0m e[0;32mife[0m e[0mmagic_numbere[0m e[0;34m!=e[0m e[0mMAGIC_NUMBERe[0me[0;34m:e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551564+00:00 app[web.1]: e[1;32m 764e[0m e[0;32mraisee[0m e[0mRuntimeErrore[0me[0;34m(e[0me[0;34m"Invalid magic number; corrupt file?"e[0me[0;34m)e[0me[0;34me[0me[0;34me[0me[0m
2021-06-08T12:47:18.551564+00:00 app[web.1]:
2021-06-08T12:47:18.551565+00:00 app[web.1]: e[0;31mUnpicklingErrore[0m: invalid load key, ‘v’.
2021-06-08T12:47:18.551565+00:00 app[web.1]: UnpicklingError: invalid load key, ‘v’.
2021-06-08T12:47:18.551565+00:00 app[web.1]:
I don’t really get what is wrong as the deployment went well, could someone help me out?