Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in Audiobookshelf integration - Crashes when importing #1140

Open
Grim73 opened this issue Dec 18, 2024 · 6 comments
Open

Error in Audiobookshelf integration - Crashes when importing #1140

Grim73 opened this issue Dec 18, 2024 · 6 comments

Comments

@Grim73
Copy link

Grim73 commented Dec 18, 2024

From what I have seen, this is related to #529. I cant sync via integration, nor import via manual importing. I use Authentik for Audiobookshelf, but haven't been able to set it up on Ryot yet (beside the point) Below are my logs, let me know if there is anything else I need to share:

log:

ryot     | [frontend] GET /settings/imports-and-exports.data 200 - - 22.386 ms
ryot     | [backend] 2024-12-18T15:23:29.066420Z DEBUG ryot: Deployed import job
ryot     | [backend] 2024-12-18T15:23:29.067245Z TRACE ryot: Started job ImportFromExternalSource("usr_DlaVzZck44yr", DeployImportJobInput { source: Audiobookshelf, mal: None, igdb: None, trakt: None, movary: None, generic_json: None, strong_app: None, url_and_key: Some(DeployUrlAndKeyImportInput { api_url: "https://audiobookshelf.tld", api_key: "API_KEY" }), generic_csv: None, jellyfin: None })
ryot     | [frontend] POST /settings/imports-and-exports.data?intent=deployImport 200 - - 17.138 ms
ryot     | [backend] 2024-12-18T15:23:29.072232Z DEBUG ryot: Started import job with id imp_aXctKIMoikdE
ryot     | [frontend] GET /settings/imports-and-exports.data 200 - - 19.749 ms
ryot     | [backend] thread 'main' panicked at /home/runner/work/ryot/ryot/crates/services/importer/src/audiobookshelf.rs:48:10:
ryot     | [backend] called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) }
ryot     | [backend] note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
ryot     | [backend] BACKEND_PORT=5000 /usr/local/bin/backend exited with code 101
ryot     | --> Sending SIGTERM to other processes..
ryot     | [proxy] {"level":"info","ts":1734535409.254885,"msg":"shutting down apps, then terminating","signal":"SIGTERM"}
ryot     | [proxy] {"level":"warn","ts":1734535409.2549305,"msg":"exiting; byeee!! 👋 ","signal":"SIGTERM"}
ryot     | [proxy] {"level":"info","ts":1734535409.2549531,"logger":"http","msg":"servers shutting down with eternal grace period"}
ryot     | [proxy] {"level":"info","ts":1734535409.2551138,"msg":"shutdown complete","signal":"SIGTERM","exit_code":0}
ryot     | [proxy] caddy run --config /etc/caddy/Caddyfile exited with code SIGTERM
ryot     | --> Sending SIGTERM to other processes..
ryot     | [frontend] 
ryot     | [frontend] PORT=3000 npx remix-serve ./build/server/index.js exited with code SIGTERM

docker-compose.yaml:

services:
  ryot-db:
    image: postgres:16-alpine # at-least version 15 is required
    restart:  always
    volumes:
      - ./postgres_storage:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=${PASS}
      - POSTGRES_USER=postgres
      - POSTGRES_DB=postgres
      - TZ=America/Chicago
    container_name: ryot-db
 
  ryot:
    image: ignisda/ryot:v7 # or ghcr.io/ignisda/ryot:v7
    environment:
      - DATABASE_URL=postgres://postgres:${PASS}@ryot-db:5432/postgres
      - TZ=America/Chicago
      - FRONTEND_URL=https://tld
      #- SERVER_CORS_ORIGINS=https://tld
      - SERVER_OIDC_CLIENT_ID=${SERVER_OIDC_CLIENT_ID}
      - SERVER_OIDC_CLIENT_SECRET=${SERVER_OIDC_CLIENT_SECRET}
      - SERVER_ISSUER_URL=${SERVER_ISSUER_URL}
      - FRONTEND_OUDC_BUTTON_LABEL=Authentik
      #- USERS_DISABLE_LOCAL_AUTH=true
      - RUST_LOG=ryot=trace
      #- FRONTEND_INSECURE_COOKIES=true # if running on HTTP
    ports:
      - "3737:8000"
    pull_policy: always
    container_name: ryot
@IgnisDa
Copy link
Owner

IgnisDa commented Dec 18, 2024 via email

@Grim73
Copy link
Author

Grim73 commented Dec 18, 2024

yes, just did a curl after sudo docker exec -it ryot bash to my baseurl (curl https://audiobookshelf.tld) and got the following:

<!doctype html>
<html lang="en" data-n-head="%7B%22lang%22:%7B%221%22:%22en%22%7D%7D">
  <head>
    <meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="description" name="description" content=""><meta data-n-head="1" data-hid="robots" name="robots" content="noindex"><meta data-n-head="1" data-hid="charset" charset="utf-8"><meta data-n-head="1" data-hid="mobile-web-app-capable" name="mobile-web-app-capable" content="yes"><meta data-n-head="1" data-hid="apple-mobile-web-app-capable" name="apple-mobile-web-app-capable" content="yes"><meta data-n-head="1" data-hid="apple-mobile-web-app-status-bar-style" name="apple-mobile-web-app-status-bar-style" content="black"><meta data-n-head="1" data-hid="apple-mobile-web-app-title" name="apple-mobile-web-app-title" content="Audiobookshelf"><meta data-n-head="1" data-hid="theme-color" name="theme-color" content="#232323"><meta data-n-head="1" data-hid="og:type" name="og:type" property="og:type" content="website"><meta data-n-head="1" data-hid="og:title" name="og:title" property="og:title" content="Audiobookshelf"><meta data-n-head="1" data-hid="og:site_name" name="og:site_name" property="og:site_name" content="Audiobookshelf"><title>Audiobookshelf</title><link data-n-head="1" rel="icon" type="image/x-icon" href="/favicon.ico"><link data-n-head="1" rel="apple-touch-icon" href="/ios_icon.png"><link data-n-head="1" data-hid="shortcut-icon" rel="shortcut icon" href="/icon.svg"><link data-n-head="1" data-hid="apple-touch-icon" rel="apple-touch-icon" href="/icon192.png" sizes="any"><link data-n-head="1" rel="manifest" href="/_nuxt/manifest.aafd1341.json" data-hid="manifest"><base href="/"><link rel="preload" href="/_nuxt/53243b6.js" as="script"><link rel="preload" href="/_nuxt/18ecc46.js" as="script"><link rel="preload" href="/_nuxt/b017f37.js" as="script"><link rel="preload" href="/_nuxt/07bf0c3.js" as="script">
  </head>
  <body>
    <div id="__nuxt"><style>#nuxt-loading{background:#fff;visibility:hidden;opacity:0;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;flex-direction:column;animation:nuxtLoadingIn 10s ease;-webkit-animation:nuxtLoadingIn 10s ease;animation-fill-mode:forwards;overflow:hidden}@keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}@-webkit-keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}#nuxt-loading>div,#nuxt-loading>div:after{border-radius:50%;width:5rem;height:5rem}#nuxt-loading>div{font-size:10px;position:relative;text-indent:-9999em;border:.5rem solid #f5f5f5;border-left:.5rem solid #000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:nuxtLoading 1.1s infinite linear;animation:nuxtLoading 1.1s infinite linear}#nuxt-loading.error>div{border-left:.5rem solid #ff4500;animation-duration:5s}@-webkit-keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}</style> <script>window.addEventListener("error",(function(){var e=document.getElementById("nuxt-loading");e&&(e.className+=" error")}))</script> <div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div> </div><script>window.__NUXT__={config:{version:"2.17.5",routerBasePath:"",_app:{basePath:"/",assetsPath:"/_nuxt/",cdnURL:null}}}</script>
  <script src="/_nuxt/53243b6.js"></script><script src="/_nuxt/18ecc46.js"></script><script src="/_nuxt/b017f37.js"></script><script src="/_nuxt/07bf0c3.js"></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8f410cd37e776342',t:'MTczNDU0NDgwMS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>

@IgnisDa
Copy link
Owner

IgnisDa commented Dec 18, 2024 via email

@Grim73
Copy link
Author

Grim73 commented Dec 18, 2024

doesnt shut down anymore, but still getting the same error

ryot     | [frontend] GET /settings/imports-and-exports.data 200 - - 14.511 ms
ryot     | [backend] 2024-12-18T20:59:51.308397Z DEBUG ryot: Deployed import job
ryot     | [backend] 2024-12-18T20:59:51.308425Z TRACE ryot: Started job ImportFromExternalSource("usr_TpddsodnIf2q", DeployImportJobInput { source: Audiobookshelf, mal: None, igdb: None, trakt: None, movary: None, generic_json: None, strong_app: None, url_and_key: Some(DeployUrlAndKeyImportInput { api_url: "https://ABS.TLD", api_key: "API" }), generic_csv: None, jellyfin: None })
ryot     | [frontend] POST /settings/imports-and-exports.data?intent=deployImport 200 - - 12.683 ms
ryot     | [backend] 2024-12-18T20:59:51.314760Z DEBUG ryot: Started import job with id imp_THTdqrVTKrXT
ryot     | [frontend] GET /settings/imports-and-exports.data 200 - - 15.593 ms
ryot     | [backend] thread 'main' panicked at /home/runner/work/ryot/ryot/crates/services/importer/src/audiobookshelf.rs:48:10:
ryot     | [backend] called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) }

Still able to curl my ABS from ryot as well.

@IgnisDa
Copy link
Owner

IgnisDa commented Dec 19, 2024

Is your ABS instance exposed to the internet? Would it be possible for you to give me access to it so that I can debug the issue?

@Grim73
Copy link
Author

Grim73 commented Dec 19, 2024

let me set you a user up on my authentik, I will email you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants