Permission broken after tandoor app update: Can't edit recipes anymore

Good evening!

My Problem
After app update from tandoor 1.5.10~ynh1 to tandoor 1.5.11~ynh2 i can not edit my recipes any more (stapled dots menu on the right of the title section of the recipeis tile is missing).

My Research
i am very positive to be facing the same issue as described in tandoor forum.

but it is not well solved there. they do a good job in analyzing it as an issue with user permissions. but it reads to me as if they workaround by removing a user and then run their docker by root.

i would prefer to solve it cleanly by repairing the non-root users permissions. but my knowledge lacks to know where to do this.

every hint warmly welcome!

My Logs
let me know if you need more description after you checked out the log of the tandoor update that broke the permissions here: https://paste.yunohost.org/raw/ejavufirat

the yunohost update report contains three sub-operations concerning permissions:

General Info
Hardware: Dell Wyse Thinclient 5010 2GB RAM bare-metal amd64
YunoHost version: 11.2.9.1
I have access to my server : Through SSH and through the webadmin and if necessary direct access via keyboard
Are you in a special context or did you perform some particular tweaking on your YunoHost instance ? : no
If your request is related to an app, specify its name and version: tandoor app update from tandoor 1.5.10~ynh1 to tandoor 1.5.11~ynh2

UPDATE july 9th 2024: todays yunohost-tandoor-update (to 1.5.18~ynh1) fixed this for me.

UPDATE january 31st 2024: in tandoors github a ā€œcollaboratorā€ suggests:

If you are unable to edit it is because your app is deployed incorrectly. ā€¦ If it is because you have changed the container to run as a non-root user this is unsupported and you will need to change it back.

how would i do this (change back the permissions of the user running tandoor) in yunohost? (i am afraid to try and error this on my yunohost installation and thereby risking to brake it.)

The app is not running in docker in Yunohost installation so this is very unlikely to be the cause here.
Can you please share app logs (available in webadmin->tools->services->Tandoor) for any obvious problems?
Is network tab of developer tools in your browser of choice showing any non-200 return codes?

thanks for your request for further information. here you go: latest app log and: indeed, there are a bunch of ā€œTypeError: window.Urls[e] is not a functionā€. i am not allowed to upload the whole console export file. but here is one of them, there are 20+, identical as far as i can manually read:

TypeError: window.Urls[e] is not a function
    m https://rezepte.mois.noho.st/static/vue/js/recipe_search_view.a3f4f27d1d61.js:1
    resolveDjangoUrl https://rezepte.mois.noho.st/static/vue/js/recipe_search_view.a3f4f27d1d61.js:1
    i https://rezepte.mois.noho.st/static/vue/js/recipe_search_view.a3f4f27d1d61.js:1
    _render https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    r https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    get https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    t https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    Pn https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    $mount https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    $mount https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    init https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    p https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    f https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    y https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    f https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    y https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    f https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    y https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    f https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    y https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    f https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    y https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    f https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    ms https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    _update https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    r https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    get https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    t https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    Pn https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    $mount https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    $mount https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    init https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    p https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    f https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    C https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    T https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    C https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    T https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    C https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    T https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    C https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    T https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    C https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    T https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    C https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    T https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    C https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    T https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    ms https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    _update https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    r https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    get https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    run https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    qn https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    Dr https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    Cr https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    promise callback*xr https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    Dr https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    Jn https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    update https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    notify https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    set https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    set https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    refreshData https://rezepte.mois.noho.st/static/vue/js/recipe_search_view.a3f4f27d1d61.js:1
    promise callback*23305/I.methods.refreshData< https://rezepte.mois.noho.st/static/vue/js/recipe_search_view.a3f4f27d1d61.js:1
    b https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:727
    x https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:727
    O https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:727
    setTimeout handler*y https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:727
    B https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:727
    mounted https://rezepte.mois.noho.st/static/vue/js/recipe_search_view.a3f4f27d1d61.js:1
    Dr https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
    Cr https://rezepte.mois.noho.st/static/vue/js/chunk-vendors.ec4fffc9516b.js:1054
chunk-vendors.ec4fffc9516b.js:1054:30359

I have the same issue with a similar error in the console. Iā€™m on a fresh install. Iā€™m also seeing this in the console:
This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use ā€œ<!DOCTYPE html>ā€.
and
TypeError: fetchedRules is undefined

I found this issue that might be relevant - same window.Urls[e] console error - no resolution sadly.

I looked at the headers as pointed from that issue:

and they seem to be fine.

I do find I can access edit mode for a recipe by replacing ā€œviewā€ with ā€œeditā€ in the urlā€¦

1 Like

this IS a workaround working here too - welcome back to the 90s. THANKS a lot anyways!
but i will wait until a day before the topic closes automatically before i mark your answer as ā€œsolutionā€. there might somebody show up with a real solution in the meantime.

1 Like

thanks @RadtkeJCJ for hinting me towards required headers.

checked my yunohostā€™s nginx for the location headers.
found two of the four recommended ones in
/var/www/tandoor/nginx/conf.d/Recipes.conf
added the other two.
now it looks like this (added lines marked with asterisk):

  location / {
    proxy_set_header Host $http_host;
*   proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://web_recipes:8080;
*   proxy_redirect http://web_recipes:8080 https://xxxx.xxxx.noho.st;
    error_page 502 /errors/http502.html;
  }

restarted nginx.service.
reloaded browser cache (strg+F5).
nothing broke. same errors in browser console. no noticable change.
will leave it like this and watch it further.

1 Like

@mois - when you say ā€˜no noticable changeā€™ - your adding the two headers to ā€˜/var/www/tandoor/nginx/conf.d/Recipes.confā€™ didnā€™t fix your problem?

Because Iā€™m having the same problem - I also canā€™t edit recipes anymore as you described, except by changing ā€˜viewā€™ to ā€˜editā€™ in the address bar.

Is this worth a bug report in https://github.com/YunoHost-Apps/tandoor_ynh/issues ?

Hope this finds you all well!

exactly.

thanks for the link. but i am not shure if this would be the right place.

Yunohost General Repo Issues says:

If you were performing an action from the webadmin or the CLI and encountered what you think is a bug, you are on the right place! Carefully follow the issue template, for better efficiency.

that is what would make me file it there, not in the appā€™s issues you recommended. but i am not shure.

so i wont file it at all - yet.

1 Like

Iā€™ve got the same problem. However I donā€™t find any problems in the log: hastebin

Before finding this thread I already opened an issue report on Git: Can't edit recipes any more Ā· Issue #67 Ā· YunoHost-Apps/tandoor_ynh Ā· GitHub

Iā€™ve run into this issue as well and similarly believe it might be related to permissions around the static files being generated though I havenā€™t been able to dig into the issue much.

I had a backup that I was able to restore to quite easily but this issue will prevent me from upgrading moving forward.

Any help would be greatly appreciated, thanks!

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