Repository navigation
[Bug]: Error on Youtube login #250
Copy link
Copy link
Open
Labels
area: backendTypeType-Server API or extractionTypeType-Server API or extractionarea: frontendFrontend web appFrontend web apparea: tokenTypeType-Token serviceTypeType-Token servicebugSomething isn't workingSomething isn't workingpriority: mediumMedium priorityMedium priority
Description
What happened?
Hi, I installed the stack manually, and I stumble upon 2 problems :
- first when you have auto connection without password configured on your google account the login doesn't work because the login prompt is stuck waiting for a passkey and impossible to click on the "try other method" button
- other thing and that's the main problem, I deactivated the auto connection to use password, it worked so first problem solved temporary, but next I have 2 step security on my account I with and without it but the login don't work either and I get a message "error" below the embeded browser but nothing in the logs, the login google work but it fail on the redirect
Steps to reproduce
go to remote YouTube login
try to connect
fail
Area
Token / remote login
Channel
main (stable)
Anything else?
networks:
default:
name: ${DOCKER_HOSTNAME}
external: true
services:
typetype:
container_name: typetype
depends_on:
typetype-server:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/api/version/web"]
interval: 5s
timeout: 3s
retries: 12
image: ghcr.io/typetype-video/typetype:1.6.0
networks:
- default
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
typetype-downloader:
container_name: typetype-downloader
depends_on:
typetype-postgres:
condition: service_healthy
typetype-token:
condition: service_healthy
typetype-valkey:
condition: service_healthy
environment:
DB_URL: postgres://${USER}:${POSTGRES_PASSWORD}@typetype-postgres:${POSTGRES_PORT}/typetype?sslmode=disable
PUBLIC_BASE_URL: /api/downloader
REDIS_HOST: typetype-valkey
REDIS_PORT: ${VALKEY_PORT}
S3_ENDPOINT: http://minio:${MINIO_PORT}
S3_PUBLIC_ENDPOINT: http://minio:${MINIO_PORT}
S3_REGION: minio
S3_BUCKET: typetype
S3_ACCESS_KEY: ${TYPETYPE_S3_ACCESS_KEY}
S3_SECRET_KEY: ${TYPETYPE_S3_SECRET_KEY}
STORAGE_BACKEND: s3
image: ghcr.io/typetype-video/typetype-downloader:1.6.0
networks:
- default
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
typetype-postgres:
container_name: typetype-postgres
environment:
POSTGRES_DB: typetype
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${USER}
TZ: ${TZ}
healthcheck:
interval: 30s
retries: 3
start_period: 10s
test: ['CMD', 'pg_isready', '-d', 'typetype', '-U', '${USER}']
timeout: 10s
image: postgres:16-bookworm
labels:
docker.stack: track
homepage.group: Databases
homepage.href: ${URL_DB}
homepage.icon: sh-postgresql
homepage.name: typetype-postgres
kuma.__db: '"postgres", "postgresql://${USER}:${POSTGRES_PASSWORD}@typetype-postgres:${POSTGRES_PORT}/typetype"'
kuma.__docker: '"${DOCKER_HOSTNAME}", "socket", "/var/run/docker.sock", ""'
wud.display.icon: sh-postgresql
wud.display.name: typetype-postgres
wud.tag.include: 16-bookworm
wud.watch.digest: true
networks:
- default
pull_policy: always
restart: always
volumes:
- /home/${USER}/.config/docker/typetype/db:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
typetype-server:
container_name: typetype-server
depends_on:
typetype-downloader:
condition: service_started
typetype-postgres:
condition: service_healthy
typetype-token:
condition: service_healthy
typetype-valkey:
condition: service_healthy
environment:
ALLOWED_ORIGINS: ${URL_TYPE}
DATABASE_URL: jdbc:postgresql://typetype-postgres:${POSTGRES_PORT}/typetype
DATABASE_USER: ${USER}
DATABASE_PASSWORD: ${POSTGRES_PASSWORD}
DRAGONFLY_URL: redis://typetype-valkey:${VALKEY_PORT}
OIDC_CLIENT_ID: ${TYPETYPE_OIDC_CLIENT_ID}
OIDC_CLIENT_SECRET: ${TYPETYPE_OIDC_CLIENT_SECRET}
OIDC_ISSUER: ${URL_AUTH}/application/o/typetype/
OIDC_PROVIDER_NAME: Authentik
YOUTUBE_REMOTE_LOGIN_ENABLED: true
YOUTUBE_REMOTE_LOGIN_INTERNAL_TOKEN: ${TYPETYPE_YOUTUBE_REMOTE_LOGIN_INTERNAL_TOKEN}
YOUTUBE_SESSION_ENCRYPTION_KEY: ${TYPETYPE_YOUTUBE_SESSION_ENCRYPTION_KEY}
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/health"]
image: ghcr.io/typetype-video/typetype-server:1.6.0
networks:
- default
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
typetype-token:
container_name: typetype-token
environment:
NODE_ENV: production
YOUTUBE_REMOTE_LOGIN_ENABLED: true
YOUTUBE_REMOTE_LOGIN_INTERNAL_TOKEN: ${TYPETYPE_YOUTUBE_REMOTE_LOGIN_INTERNAL_TOKEN}
healthcheck:
test: ["CMD-SHELL", "curl --fail --silent http://127.0.0.1:8081/health > /dev/null"]
image: ghcr.io/typetype-video/typetype-token:1.6.0
init: true
ipc: host
networks:
- default
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
typetype-valkey:
container_name: typetype-valkey
healthcheck:
interval: 30s
retries: 3
start_period: 10s
test: ['CMD', 'valkey-cli', 'ping']
timeout: 10s
image: valkey/valkey:9.1.1
labels:
docker.stack: track
homepage.group: Redis
homepage.href: ${URL_REDIS}
homepage.icon: sh-valkey
homepage.name: typetype-valkey
kuma.__db: '"redis", "redis://typetype-valkey:${VALKEY_PORT}"'
kuma.__docker: '"${DOCKER_HOSTNAME}", "socket", "/var/run/docker.sock", ""'
wud.display.icon: sh-valkey
wud.display.name: typetype-valkey
wud.link.template: https://github.com/valkey-io/valkey/releases
wud.tag.include: '^\d+\.\d+\.\d+$$'
networks:
- default
restart: always
volumes:
- /home/${USER}/.config/docker/typetype/redis:/data
- /etc/localtime:/etc/localtime:ro
Logs server :
typetype-server | 2026-08-25T11:53:45.168989892Z 13:53:45.167 [main] INFO Application - Autoreload is disabled because the development mode is off.
typetype-server | 2026-08-25T11:53:45.250331640Z 13:53:45.249 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
typetype-server | 2026-08-25T11:53:45.374694853Z 13:53:45.374 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@4690f583
typetype-server | 2026-08-25T11:53:45.375536705Z 13:53:45.375 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
typetype-server | 2026-08-25T11:53:45.690565849Z WARNING: A restricted method in java.lang.System has been called
typetype-server | 2026-08-25T11:53:45.690592929Z WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/app/app.jar)
typetype-server | 2026-08-25T11:53:45.690597659Z WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
typetype-server | 2026-08-25T11:53:45.690599749Z WARNING: Restricted methods will be blocked in a future release unless native access is enabled
typetype-server | 2026-08-25T11:53:45.690601619Z
typetype-server | 2026-08-25T11:53:46.298235705Z 13:53:46.298 [main] INFO Application - Application started in 1.248 seconds.
typetype-server | 2026-08-25T11:53:46.334907103Z 13:53:46.334 [DefaultDispatcher-worker-1] INFO Application - Responding at http://0.0.0.0:8080
typetype-server | 2026-08-25T11:54:14.898230289Z 13:54:14.898 [eventLoopGroupProxy-7-1] INFO Application - requestId=323cc860-9050-47a6-b64b-6ee24abaf0ae method=GET path=/health status=200 durationMs=24
typetype-server | 2026-08-25T11:54:44.941891233Z 13:54:44.941 [eventLoopGroupProxy-7-2] INFO Application - requestId=b77d0515-2e58-4b57-8379-d542e42b1c12 method=GET path=/health status=200 durationMs=0
typetype-server | 2026-08-25T11:55:14.981565139Z 13:55:14.981 [eventLoopGroupProxy-7-3] INFO Application - requestId=58948230-4f7a-4351-acf4-ec4e98ae5592 method=GET path=/health status=200 durationMs=0
typetype-server | 2026-08-25T11:55:45.015856449Z 13:55:45.015 [eventLoopGroupProxy-7-4] INFO Application - requestId=4d96cc83-d346-47db-aa7c-5b220d09da1a method=GET path=/health status=200 durationMs=0
typetype-server | 2026-08-25T11:56:15.052199192Z 13:56:15.051 [eventLoopGroupProxy-7-5] INFO Application - requestId=4fb8b143-4efa-46ba-aeb0-42855a37c417 method=GET path=/health status=200 durationMs=0
typetype-server | 2026-08-25T11:56:16.448114521Z 13:56:16.447 [eventLoopGroupProxy-7-6] INFO Application - requestId=dcf53141-ff7a-473f-afa4-f959d0e2c2f8 method=GET path=/auth/register/status status=200 durationMs=44
typetype-server | 2026-08-25T11:56:16.518628490Z 13:56:16.518 [eventLoopGroupProxy-7-9] INFO Application - requestId=a4600518-3312-4547-8ba4-7bfbf1c42be2 method=POST path=/sessions/activity status=401 durationMs=93
typetype-server | 2026-08-25T11:56:16.518657480Z 13:56:16.518 [eventLoopGroupProxy-7-8] INFO Application - requestId=d0cde8c5-a1a8-4d26-9825-8e3efa7b3939 method=POST path=/sessions/activity status=401 durationMs=113
typetype-server | 2026-08-25T11:56:16.519151842Z 13:56:16.519 [eventLoopGroupProxy-7-10] INFO Application - requestId=8ddc3e5c-8049-4101-9865-eb49bd46b684 method=GET path=/blocked/videos status=401 durationMs=85
typetype-server | 2026-08-25T11:56:16.519523413Z 13:56:16.519 [eventLoopGroupProxy-7-7] INFO Application - requestId=f5f7ec11-67f2-4807-9692-ff3a4884a73e method=GET path=/search-history status=401 durationMs=115
typetype-server | 2026-08-25T11:56:17.320012522Z 13:56:17.319 [eventLoopGroupProxy-7-12] INFO Application - requestId=cb4b9aee-d81b-4b78-9828-6827c680e69e method=GET path=/auth/me status=401 durationMs=1
typetype-server | 2026-08-25T11:56:17.386807012Z 13:56:17.386 [eventLoopGroupProxy-7-13] INFO Application - requestId=d6d1b5b2-0af8-43ab-8059-fd47dca79688 method=POST path=/auth/refresh status=200 durationMs=42
typetype-server | 2026-08-25T11:56:17.409361762Z 13:56:17.409 [eventLoopGroupProxy-7-14] INFO Application - requestId=05d0f596-2347-4d17-a76f-9a71a8b62ccb method=GET path=/auth/me status=200 durationMs=8
typetype-server | 2026-08-25T11:56:17.489041516Z 13:56:17.488 [eventLoopGroupProxy-7-18] INFO Application - requestId=0f82a938-43bc-4a37-84e4-3e9cbf97c173 method=GET path=/auth/register/status status=200 durationMs=2
typetype-server | 2026-08-25T11:56:17.495639114Z 13:56:17.495 [eventLoopGroupProxy-7-17] INFO Application - requestId=39253998-4c40-4324-81fa-c2b14da466b5 method=GET path=/youtube-session/status status=200 durationMs=11
typetype-server | 2026-08-25T11:56:17.497988010Z 13:56:17.497 [eventLoopGroupProxy-7-16] INFO Application - requestId=aa514289-91b2-47a7-a426-e1386b91a2b9 method=GET path=/search-history status=200 durationMs=16
typetype-server | 2026-08-25T11:56:17.499755875Z 13:56:17.499 [eventLoopGroupProxy-7-15] INFO Application - requestId=30cd0090-9d9c-4e3f-96a4-697de5a4c646 method=GET path=/settings status=200 durationMs=20
typetype-server | 2026-08-25T11:56:17.501621900Z 13:56:17.501 [eventLoopGroupProxy-7-19] INFO Application - requestId=5e73e293-e73c-4859-961e-801f6eb65762 method=POST path=/sessions/activity status=204 durationMs=11
typetype-server | 2026-08-25T11:56:17.541122306Z 13:56:17.540 [DefaultDispatcher-worker-7] INFO d.t.s.s.SubscriptionFeedService - subscription_feed event=refresh_started user=c9be25389960a1c03a4d4b62ee195e911b1ad091930f4d6252c7670e7592aabc requestId=d530a7f3-ae54-4b43-a143-1820120a79ec
typetype-server | 2026-08-25T11:56:17.543479603Z 13:56:17.543 [eventLoopGroupProxy-7-20] INFO Application - requestId=d530a7f3-ae54-4b43-a143-1820120a79ec method=GET path=/notifications/unread-count status=200 durationMs=10
typetype-server | 2026-08-25T11:56:17.548051585Z 13:56:17.547 [DefaultDispatcher-worker-7] INFO d.t.s.s.SubscriptionFeedService - subscription_feed event=refresh_completed user=c9be25389960a1c03a4d4b62ee195e911b1ad091930f4d6252c7670e7592aabc requestId=d530a7f3-ae54-4b43-a143-1820120a79ec generation=1787658977545 videos=0 failedSources=0 durationMs=7
typetype-server | 2026-08-25T11:56:17.636735003Z 13:56:17.636 [eventLoopGroupProxy-7-11] INFO Application - requestId=30db0199-8a22-47ab-be7a-efb46abdd917 method=GET path=/instance status=200 durationMs=322
typetype-server | 2026-08-25T11:56:17.666763544Z 13:56:17.666 [eventLoopGroupProxy-7-21] INFO Application - requestId=da283e9b-f5c9-40d5-be0d-5637b6f0c2e2 method=GET path=/blocked/channels status=200 durationMs=10
typetype-server | 2026-08-25T11:56:17.667809746Z 13:56:17.667 [eventLoopGroupProxy-7-22] INFO Application - requestId=ed14c336-0b4a-41cf-af79-5c3eaca27cb3 method=GET path=/blocked/videos status=200 durationMs=9
typetype-server | 2026-08-25T11:56:17.669195010Z 13:56:17.669 [eventLoopGroupProxy-7-23] INFO Application - requestId=dcb593bf-0534-475e-b243-3b497c0a0240 method=GET path=/blocked/keywords status=200 durationMs=7
typetype-server | 2026-08-25T11:56:17.672867970Z 13:56:17.672 [eventLoopGroupProxy-7-24] INFO Application - requestId=f63120b5-93b0-44b1-ab96-b8c885505430 method=GET path=/notifications status=200 durationMs=8
typetype-server | 2026-08-25T11:56:21.254642680Z 13:56:21.254 [eventLoopGroupProxy-7-1] INFO Application - requestId=f13727c9-97ef-469e-b607-303415b630c2 method=POST path=/youtube-session/browser/start status=201 durationMs=12
typetype-server | 2026-08-25T11:56:45.087569366Z 13:56:45.087 [eventLoopGroupProxy-7-3] INFO Application - requestId=65071bc8-070c-4a53-9559-0bd878720dd4 method=GET path=/health status=200 durationMs=0
typetype-server | 2026-08-25T11:57:15.135476615Z 13:57:15.135 [eventLoopGroupProxy-7-4] INFO Application - requestId=73057b5d-e957-404c-b33c-2199f9a0b448 method=GET path=/health status=200 durationMs=0
typetype-server | 2026-08-25T11:57:18.323600525Z 13:57:18.323 [eventLoopGroupProxy-7-5] INFO Application - requestId=4dbe2a5a-4849-4784-abc6-2611b95c0ea3 method=POST path=/sessions/activity status=204 durationMs=2
typetype-server | 2026-08-25T11:57:45.174107607Z 13:57:45.173 [eventLoopGroupProxy-7-7] INFO Application - requestId=fde4d8e2-91c3-40d3-b240-9008a6aec108 method=GET path=/health status=200 durationMs=0Metadata
Metadata
Assignees
Labels
area: backendTypeType-Server API or extractionTypeType-Server API or extractionarea: frontendFrontend web appFrontend web apparea: tokenTypeType-Token serviceTypeType-Token servicebugSomething isn't workingSomething isn't workingpriority: mediumMedium priorityMedium priority
Type
Projects
- StatusShow more project fieldsTesting
Activity
Priveetee commentedon Aug 29, 2026
Hey @kinouzero, thx for the detailed report!
This was reported with TypeType 1.6.0. Could u update to TypeType 1.7.0 and see if the problem still happens?
If it does, please tell me which step gets stuck and share the relevant Server and Token logs from that attempt :)
kinouzero commentedon Aug 31, 2026
Hi @Priveetee,
I still have the issue even with server 1.7.1 and the rest of the stack on 1.7.0.
I've the error message when I try to pass the 2fa stage.
Nothing in the token logs and this is the server logs
Priveetee commentedon Sep 3, 2026
Ok not gonna lie, this bug is verry tricky i've been on the freaking hell of debugging with Playwritgh with what he is expecting when manipulating the viewport and I may have something lmao
If that doesn't bother u, when I feel ready could you spin up an instance of the beta TypeType to test it ?
If u can it would be very helpful to me !
Priveetee commentedon Sep 3, 2026
If not np ofc !
kinouzero commentedon Sep 7, 2026
Hi, sure no problem, do you have a tag for the beta ?
Priveetee commentedon Sep 8, 2026
Hi @kinouzero,
I tested the remote YouTube login flow in TypeType
1.8.0with both Zen Browser (Gecko) and Helium (Chromium). In both browsers, the login screen adapts correctly and the input events are captured properly.This release includes the fix for remote YouTube login completion after passkey or 2FA. Could you test again with the complete
1.8.0stack and confirm whether the error still appears after the 2FA step?If it still fails, please share the exact step where it stops and the Server/Token logs from that attempt. I’ll keep the issue open until the fix is confirmed.
kinouzero commentedon Sep 8, 2026
Hi,
I tried the new version 1.8.0, but it is worse than before, I cannot focus on the integrated browser to enter my email, so I cannot test the login. I tried with chrome & safari
Priveetee commentedon Sep 8, 2026
Hi! Sorry it's worse with 1.8.0, and thanks for testing again!
Before changing the size of the embedded browser, I'd like to understand what's blocking the input:
Could you also share a screenshot of the full TypeType window, with any personal information hidden? That would help me see how the embedded browser fits on your screen.
kinouzero commentedon Sep 8, 2026
kinouzero commentedon Sep 11, 2026
Hi,
I tried on the 1.8.1 version, the browser is working again, but I've got an error on the phase indication with the browser freezing when I validate the password and google ask for 2FA, I've got nothing in the logs
Priveetee commentedon Sep 13, 2026
Hey @kinouzero, thx for the retest on 1.8.1!
I still can't reproduce it on my side, so I instrumented the whole remote login flow in a beta build. Everything is now streamed into the page: what the embedded browser does (navigations, cookie names per domain, inputs applied, Playwright errors, session capture, callback result) and what ur own browser does (clicks with their mapping, keys, focus lost, dropped inputs, frame gaps, tab visibility). No password and no cookie value ever appear in it.
Could u spin up a beta stack from scratch for this test? Not ur current manual stack, a fresh one with the one-liner from the docs (https://typetype-video.github.io/Docs-TypeType/self-hosting/beta-and-main):
It creates its own
~/typetype-beta-stackwith separate ports and volumes, so it won't touch ur main stack.That way we compare the same thing, and if it works there we'll know the difference is in ur stack.
Then on the YouTube sign-in page u'll see a "Diagnostics" box under the embedded browser. Do the login until it freezes or errors, hit "Copy diagnostics", paste the whole thing on https://bin.typetype.video and drop the link here (it stays readable for a week). The box stays visible after the session ends, so no rush.
I tested the beta myself with a 2FA account and the whole flow goes through, so whatever breaks on ur side should show up clearly in those lines.
Thx a lot for ur patience on this one :)
Priveetee commentedon Sep 21, 2026
Hello @kinouzero by any chance did u got the time to test it pls ?
Priveetee commentedon Sep 29, 2026
Hey @kinouzero! I wanted to check in once more on the YouTube sign-in issue. Your last test was on 1.8.1, and TypeType 1.9.0 is now available. Would you have a chance to try the sign-in flow again, especially the 2FA step, and let me know whether the browser still freezes or the progress indicator gets stuck? No rush, and thanks again for helping me test this!
Aquarius-Situla commentedon Sep 30, 2026
Hi @Priveetee @kinouzero!
We encountered this exact same issue previously and traced down what is happening:
Why it happens
The reason this is tricky to reproduce with standard accounts is that it specifically triggers when the Google account has Passkeys or FIDO2 Security Keys enabled:
navigator.credentials.get().typetype-tokenwithout access to host/client platform authenticators (Windows Hello, macOS Touch ID, or client-side USB security keys).navigator.credentials.get()is invoked with no platform authenticator available in the container, the request hangs or prompts a native dialog outside the viewport, causing the embedded browser session to freeze and fail.The Fix
In
TypeType-Token'screateRemoteLoginPage, we can inject an initialization script viacontext.addInitScript()before navigation:isUserVerifyingPlatformAuthenticatorAvailable = falseandisConditionalMediationAvailable = falseonwindow.PublicKeyCredential.navigator.credentials.get()andcreate()with a standardNotSupportedErrorDOMException.When Google detects that WebAuthn / Passkeys are not supported in the browser environment, it gracefully bypasses the passkey step and displays the password and standard 2FA options (Google Authenticator / TOTP, Google Prompt, or SMS).
I have opened a PR on
TypeType-Tokenwith the fix here:👉 TypeType-Video/TypeType-Token#21
Tested on our self-hosted deployment: accounts with passkeys enabled now breeze through to the TOTP / password stage without freezing!
Priveetee commentedon Oct 8, 2026
@kinouzero Answer meeee, pleassse !!! 😂
kinouzero commentedon Oct 13, 2026
Hi, sorry for the long time, I wasn't able to access my server for a time. I tried with the last version 1.10.0 but it's not working. The error happened when I validate 2FA access from my phone
Here is the log :
Priveetee commentedon Oct 13, 2026
No worries at all ;) Based on ur logs I read that ur call go pass through capturing_session and then warn backend error: Completion callback faile so the failure go after the 2FA but doesn't tell us why this fail....
Im gonna add some other logs so we can trace it !
Priveetee commentedon Oct 22, 2026
Hello so since I have completely reshaped the login design, now if this doesn't work for u, honestly i'm out of idea lmao.
When u got a little bit of time go try 1.11.0 and tell me !
kinouzero commentedon Oct 22, 2026
Hi, I updated to the last version but nothing happened when I click the login button, I just got
Echecin red, when I click I got a 404 (circled) and nothing in the logs, I tried with chrome and safariPriveetee commentedon Oct 26, 2026
Hey! First, I’m really sorry this has taken so long, and thank you for being so patient with me. In 1.11.1, I removed the remote-browser sign-in; the TV device-code flow is the login option that remains. Before trying it, could you clear the cookies/site data for your TypeType instance? You can do that from the three-dot menu by the address bar. Then try signing in with the TV code and let me know if it works. If it still fails, just tell me where it gets stuck and what error you see. Thanks again for bearing with me! ദ്ദി( •̀ ᴗ •́ )