Internal Server Error 500 when Attempting to Deploy Custom App from GitHub

Hi everyone,

Thanks so much for your help. I have been really enjoying the project so far. I am working on a personal cluster of websites and so far working with Yunohost has been a joy. I am sure I am making a very silly mistake here as I have gotten stuck, but then figured things out a few times… but I have looked around to try and find some information and haven’t had any luck so far with this issue. I hope someone can please help with this issue.

My YunoHost server

Hardware: Hetzner VPS 3 VPU 4GB of RAM 80 GB running Debian 11
YunoHost version: 11.2.10.1 (stable)
I have access to my server : via SSH and via the Yunhost web portal
Are you in a special context or did you perform some particular tweaking on your YunoHost instance ? : no
If yes, please explain:

Description of my issue

What I am trying to achieve
I am trying to make the necessary modifications to this (GitHub - satopian/poti-kaini-EN: POTI-board EVO English ver, The OekakiBBS for PaintBBS NEO, tegaki.js, ChickenPaint, and Klecks. (PHP7.2-PHP8.3) https://paintbbs.sakura.ne.jp/poti/) application. I have forked it for Yunohost with a manifest.json here (GitHub - LinuxJessi/poti-kaini-EN_ynh: Yuno Host port of POTI-board EVO English ver, The OekakiBBS for PaintBBS NEO, tegaki.js, ChickenPaint, and Klecks. (PHP7.2-PHP8.3) https://paintbbs.sakura.ne.jp/poti/).

Yunohost accepts the url initially but then gives the below error when I click install after loading for some time.

Error: "500"

Action: "GET" /yunohost/api/apps/manifest?app=https://github.com/LinuxJessi/poti-kaini-EN_ynh/&with_screenshot&locale=en

Error message:

Unexpected server error

Traceback

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/moulinette/interfaces/api.py", line 453, in process
    ret = self.actionsmap.process(arguments, timeout=30, route=_route)
  File "/usr/lib/python3/dist-packages/moulinette/actionsmap.py", line 580, in process
    return func(**arguments)
  File "/usr/lib/python3/dist-packages/yunohost/app.py", line 974, in app_manifest
    manifest, extracted_app_folder = _extract_app(app)
  File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2502, in _extract_app
    return _extract_app_from_gitrepo(url, branch=branch)
  File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2625, in _extract_app_from_gitrepo
    manifest = _get_manifest_of_app(extracted_app_folder)
  File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2193, in _get_manifest_of_app
    manifest = _convert_v1_manifest_to_v2(manifest)
  File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2321, in _convert_v1_manifest_to_v2
    install_questions = manifest["arguments"]["install"]
KeyError: 'arguments'

It looks like the URL expects a screenshot. I’m not sure if this is something inside of the app, github, or yunohost. It looks like from trying to get a network read, that yunohost was making the request to the browser.

I looked at the server logs for yunohost and debian 11 and fell short of finding anything that matched my timestamps. Do you know where else I could look? If there are any screenshots, logs, etc. I could provide that would be helpful please let me know. Also if I am “barking up the wrong tree” by asking here, just let me know and I can search elsewhere to resolve this issue.

Appreciatively,

Jessi

Welcome!

What you are trying to do is called app packaging. We have a dedicated section of the forum for that, I have moved this thread there
A chapter of the documentation is also dedicated to it, you should read it first: Introduction to packaging | Yunohost Documentation

Some comments:

  • A YunoHost package has a very specific structure. You should not fork the original (“upstream”) app and add YunoHost files to it. Check out the example_ynh repository mentioned in the documentation.
  • Be wary of the upstream app LICENSE. In this case it does not have a proper one, and refers to its dependencies licenses which, to be said plainly, are a mess. I do not think we would allow the package to be published in the YunoHost catalog, though it does not prevent you from working on the package.
  • Finally, you should use packaging v2, which uses manifest.toml and not manifest.json. Out of curiosity, how have you decided to fill in that first manifest.json? Have you used a GPT?

Finally, to answer your question, the error means your manifest lacks an install section. (Check the documentation :slight_smile: )

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.