-
-
Notifications
You must be signed in to change notification settings - Fork 53
Open
Description
It looks like every 30 min the docker will stop and aut-restart due to a Error 403 no permission. After this, the docker does a re-authentication and a restart and it will work again.
Below error and re-login.
FP-Downloader: Version 5.19.2
Docker Version: 29.1.0 (build 360952c)
OS: Debian 13
Docker compose file (redacted)
services:
floatplane-downloader:
image: inrix/floatplane-downloader:dev
container_name: floatplane-downloader
environment:
- headless=true
- username=<username>
- password=<password>
- token=123456
- plexUsername=<username>
- plexPassword=<password>
volumes:
- /fp/db:/fp/db
- /mnt/media/FP:/fp/videos
ports:
- "8080:8080"
restart: unless-stopped
networks:
- monitoring
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
ports:
- "9090:9090"
networks:
- monitoring
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention.time=10y'
grafana:
image: grafana/grafana:latest
container_name: grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=<password>
volumes:
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
depends_on:
- prometheus
networks:
- monitoring
volumes:
prometheus_data:
driver: local # Persistent volume for Prometheus data
grafana_data:
driver: local # Persistent volume for Grafana data
networks:
monitoring:
driver: bridge
Error / log output:
[12/6/2025, 10:15:53 PM] Checking for new videos in 5 minutes...
[12/6/2025, 10:20:53 PM] Fetching user subscriptions...
node:internal/process/promises:332
triggerUncaughtException(err, true /* fromPromise */);
^
Eh [HTTPError]: Request failed with status code 403 (Forbidden): GET https://www.floatplane.com/api/v3/user/subscriptions
at t.<anonymous> (/fp/float.cjs:311:51487)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5) {
code: 'ERR_NON_2XX_3XX_RESPONSE',
input: undefined,
timings: {
start: 1765059653785,
socket: 1765059653785,
lookup: 1765059653786,
connect: 1765059653791,
secureConnect: 1765059653800,
upload: 1765059653800,
response: 1765059653915,
end: 1765059653916,
error: undefined,
abort: undefined,
phases: {
wait: 0,
dns: 1,
tcp: 5,
tls: 9,
request: 0,
firstByte: 115,
download: 1,
total: 131
}
},
options: t {
_unixOptions: undefined,
_internals: {
request: undefined,
agent: { http: undefined, https: undefined, http2: undefined },
h2session: undefined,
decompress: true,
timeout: {
connect: undefined,
lookup: undefined,
read: undefined,
request: undefined,
response: undefined,
secureConnect: undefined,
send: undefined,
socket: undefined
},
prefixUrl: '',
body: undefined,
form: undefined,
json: undefined,
cookieJar: undefined,
ignoreInvalidCookies: false,
searchParams: undefined,
dnsLookup: undefined,
dnsCache: undefined,
context: {},
hooks: {
init: [],
beforeRequest: [ [AsyncFunction (anonymous)], [Function (anonymous)] ],
beforeError: [],
beforeRedirect: [],
beforeRetry: [],
beforeCache: [],
afterResponse: [ [Function (anonymous)] ]
},
followRedirect: true,
maxRedirects: 10,
cache: undefined,
throwHttpErrors: true,
username: '',
password: '',
http2: false,
allowGetBody: false,
copyPipedHeaders: true,
headers: {
'user-agent': 'Floatplane-Downloader/5.19.2 (Inrix, +https://github.com/Inrixia/Floatplane-Downloader), CFNetwork',
accept: 'application/json',
connection: 'keep-alive',
'accept-encoding': 'gzip, deflate, br, zstd',
authorization: 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJicEZ3WC10MkhIUjNCR1ZoUzd1YWx3RWw5UnNHbVdjTDMydUpNS1R1U1RvIn0.eyJleHAiOjE3NjUwNTk2NDMsImlhdCI6MTc2NTA1Nzg0MywiYXV0aF90aW1lIjoxNzY1MDE0MzU1LCJqdGkiOiJvZnJ0cnQ6ZjRlMDYwNzktODkyOC1mMjc0LWQwNjQtMmIyOTk5YTVmNDI1IiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmZsb2F0cGxhbmUuY29tL3JlYWxtcy9mbG9hdHBsYW5lIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjY0M2JmZjRhZDA5NjVmN2I3NDc4YmIzMCIsInR5cCI6IkJlYXJlciIsImF6cCI6ImZsb2F0cGxhbmUtZG93bmxvYWRlciIsInNpZCI6IjUzM2FlNzA3LTFkZTYtZTc4Yy04YTk5LTdlOTQ3ODU2MzMzNiIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiLyoiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwiZGVmYXVsdC1yb2xlcy1mbG9hdHBsYW5lIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInByZWZlcnJlZF91c2VybmFtZSI6Im1pbmRsZXNzOTk5IiwiZW1haWwiOiJtaW5kbGVzc0BtaW5kbGVzczk5OS5uZXQifQ.Sit3CZEYWsmEzZeDmN-2k7Xax0bBjC2k0EGaPxgczNjNlxZ6FlyOcgrnBx34fRqykIB3nhAIiCJ7j1KGlBMzeVpTOiQYv6mZePaAWacBWe6jwV5Ey8sAxcGL9nUJOIaPrjWfDy5lK3Q2mRPw4NAtUBtVRpG92YFTvyWvkLIemuGbe-RB4iTw4NoPZy-ClaLcdD3HrnMVrOYPvmKIkfXsR1OQfL3YrJjeagNx2Z8cFELOOjsiq5LbVf9hb1u_aMn8iFmhHuZ4tKraR_1wtSvoMmvROUTVVwvOJkuoZs37ypWYHChYp4bPdlOyIXEc5zYSxX4e1L3Ve8KoNZ7KWxO31w'
},
methodRewriting: false,
dnsLookupIpVersion: undefined,
parseJson: [Function: parse],
stringifyJson: [Function: stringify],
retry: {
limit: 5,
methods: [ 'GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE' ],
statusCodes: [
408, 413, 429, 500,
502, 503, 504, 521,
522, 524
],
errorCodes: [
'ETIMEDOUT',
'ECONNRESET',
'EADDRINUSE',
'ECONNREFUSED',
'EPIPE',
'ENOTFOUND',
'ENETUNREACH',
'EAI_AGAIN'
],
maxRetryAfter: undefined,
calculateDelay: [Function: calculateDelay],
backoffLimit: Infinity,
noise: 100,
enforceRetryRules: false
},
localAddress: undefined,
method: 'GET',
createConnection: undefined,
cacheOptions: {
shared: undefined,
cacheHeuristic: undefined,
immutableMinTimeToLive: undefined,
ignoreCargoCult: undefined
},
https: {
alpnProtocols: undefined,
rejectUnauthorized: undefined,
checkServerIdentity: undefined,
serverName: undefined,
certificateAuthority: undefined,
key: undefined,
certificate: undefined,
passphrase: undefined,
pfx: undefined,
ciphers: undefined,
honorCipherOrder: undefined,
minVersion: undefined,
maxVersion: undefined,
signatureAlgorithms: undefined,
tlsSessionLifetime: undefined,
dhparam: undefined,
ecdhCurve: undefined,
certificateRevocationLists: undefined,
secureOptions: undefined
},
encoding: undefined,
resolveBodyOnly: false,
isStream: false,
responseType: 'text',
url: https://www.floatplane.com/api/v3/user/subscriptions,
pagination: {
transform: [Function: transform],
paginate: [Function: paginate],
filter: [Function: filter],
shouldContinue: [Function: shouldContinue],
countLimit: Infinity,
backoff: 0,
requestLimit: 10000,
stackAllItems: false
},
setHost: true,
maxHeaderSize: undefined,
signal: undefined,
enableUnixSockets: false,
strictContentLength: false
},
_merging: false,
_init: [
{
headers: {
'User-Agent': 'Floatplane-Downloader/5.19.2 (Inrix, +https://github.com/Inrixia/Floatplane-Downloader), CFNetwork',
accept: 'application/json',
connection: 'keep-alive'
},
retry: { limit: 5 },
hooks: { beforeRequest: [ [AsyncFunction (anonymous)] ] }
},
{
hooks: {
beforeRequest: [ [Function (anonymous)] ],
afterResponse: [ [Function (anonymous)] ]
}
}
],
_startTime: 1765059653784
},
[cause]: {}
}
Node.js v25.2.1
(node:1) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
[12/6/2025, 10:20:54 PM] Unable to authenticate with floatplane... Request failed with status code 403 (Forbidden): GET https://www.floatplane.com/api/v3/user/self
Please login to floatplane...
[12/6/2025, 10:20:55 PM]
Signed in as <username>!
[12/6/2025, 10:20:55 PM] Initalized! Running version 5.19.2 instance 643bff4ad0965f7b7478bb30
[12/6/2025, 10:20:55 PM] Fetching user subscriptions...
[12/6/2025, 10:20:55 PM] Fetching LTT Supporter's channels...
Metadata
Metadata
Assignees
Labels
No labels