mirror of
https://github.com/documenso/documenso.git
synced 2026-04-25 05:46:01 +03:00
[GH-ISSUE #2060] Playwright/Chromium not included in Docker image - Document sealing fails after signing Environment: #589
Open
opened 2026-02-26 18:47:42 +03:00 by kerem
·
21 comments
No Branch/Tag specified
main
chore/translations
feat/signing-required-field-colors
feat/add-field-overflow-settings
chore/extract-translations
release
feat/public-completed-document-access
feat/bulk-download
docs/signing-reminders
feat/document-file-conversion
feat/prefetch-intent-navigation-links
fix/lint-project
fix/replace-linter-with-biome
fix/security-improvements
perf/dynamic-import-posthog
deps/vite-8
chore/migrate-eslint-prettier-to-oxlint-oxfmt
chore/migrate-to-pnpm
feat/add-pdf-image-renderer
feat/add-embed-v2
fix/extract-emails
feat/table-toolbar-filters
copilot/sub-pr-2478
fix/recipients-send-500
feat/external-2fa-codes
feat/protect-signing-urls
fix/checkbox-checked-values
duncan/legacy-api-endpoints
chore/block-po-files-locally
fix/default-embed-v2-document-rejection-to-false
fix/fields-dialog-title-description
copilot/sub-pr-2323
copilot/sub-pr-2267
exp/autoplace-fields
chore/server-hostname-config
fix/template-add-signers
fix/add-field-drag-drop-colors
fix/envelope-updates
feat/allow-formdata
archive/1.13.2
copilot/add-billing-section-account-page
fix/field-coordinate-bounds
feat/update-user-via-admin-dashboard
feat/expiry-links
feat/team-dashboard
feat/change-radio-direction
feat/admin-create-user-with-org
archive/v1.12.11
feat/envelopes-polish
feat/add-attachments-reworked
fix/font-size-fields
feat/improve-resend-dialog
fix/download-certificate-audit-log-safari
fix/duplicate-document-by-id
feat/document-table-filters
fix/template-migration
exp/effect
fix/migrate-template-metadata
exp/keyboard-signature
feat/document-2fa-redo
feat/add-attachments
feat/billing-redirect-flow
fix/add-api-logging
fix/duplicate-document-template-review
feat/handle-redirectto-param
feat/document-processing-status-indicator
feat/customize-doc-audit-log-certificate
feat/document-2fa
feat/organisations-backup-pls
feat/audit-logs-on-completed-document
chore/webhook-trigger-multiselect
exp/bg
chore/single-signer-wording
fix/template-uploading
feat/bin-tab
fix/staging-test
feat/rr7
squish/rr7
archive/nextjs
power-signer
fix/field-placements
fix/team-member-invites
fix/checkbox-field-bugs
fix/leaderboard-query
fix/zapier-list-documents-endpoint
feat/dictate-signers
feat/allow-same-signer-email-multiple-times
wip/rr7-next
experiment/self-sign
fix/oidc-login-error
feat/document-qrcode
feat/mau
feat/copy-links-audit-logs
chore/december-dep-upgrades
wip/rr7
wip/rr7-auth-package
wip/rr7-better-auth-demo
experiment/what-if-user-ids-were-strings-instead-of-numbers
fix/refactor-api-routes
feat/add-owner-completed-email-setting
fix/embed-whitelabel-colors
feat/delete-archive
fun/sign-with-nose
expiry-links
chore/openpage-viral-metrics
fix/sitemap
feat/signing-reminder
feat/automated-fields-signature
feat/add-polish-translations
staging
fix/open-page
openpage-api-deploy
feat/pulumi
chore/angular-embed-docs
exp/next-15
chore/select-signer
feat/save-data-on-blur
feat/save-recipients-on-blur
feat/signature-color
feat/team-email-template
chore/documenso-url
chore/add-ctas
fix/docker-setup-and-documentation
fix/document-creation-timezone
feat/telemetry
feat/integration-animation
fix/render-deployment
feat/publicProfile
feat/redirect-templates
feat/passkey-dialog
fix/refactor-use-template
chore/resend-onUpdate
chore/subject-onBlur
fix/demo-trpc-duration
fix/self-signer-custom-email-message
fix/benchmark
feat/add-myself-as-signer-temp
feat/checkbox-type
feat/update-marketing-header
experiment/queue
feat/error-demo
feat/add-document-auth-options
feat/document-2fa-test
chore/status-widget
open-page-restructure
feat/document-passkey-test
chore/form-reset
fix/neon-db-migration-test
feat/public-profile
feat/launch-week-content
webhooks_plus_api
exp/custom-field-labels
feat/accept-text-signature
feat/document-version-history
fix/delete-recipient-owners
fix/whitespace-title
feat/refresh
exp/million
feat/doc-comments
ElTimuro-patch-1
feat/teams-slugify
pr/537
date-format-setting
exp/millionjs
feat/runtime-env
chore/next-14
feat/chat-with-documents
feat/plan-limits
fix/467-bugsafari-only-unable-to-copy-document-sharing-link
feat/admin-ui-manage-instance
feat/stripe-free-tier
fix/cascade-delete-share-links
feat/marketing-share-document
feat/single-player-mode-polish
feat/next-13-5-3
chore/github-templates
docs/render-deploy
chore/code-of-conduct
chore/team
feat/add-e2e-testing
docs/minor-readme-updatess
docs/dx
feat-early-adopters
feat/open-early-adopters
fix/432-signee-doc-version-doesnt-have-sticky-signing-area
fix/446-cancel-cta-does-nothing-when-a-signer-opens-the-document
fix/445-signer-name-not-persisting
feat/resend-transport
fix/incorrect-completed-stats
feat/update-email-templates
feat/mania
feat/copy-or-tweet
feat/add-design-system-page
feat/single-player-mode
feat/completed-share-link
feat/designsystem
feat/send-email
feat/custom-emails
blog/upcoming-blog-post
feat/single-player-mode-test
feat/reset-password
blog/selfhosting-blog-post
feat/redirect-signed-document
fix/og-description
feat/universal-upload
chore/readme
chore/blogposts
fix/building-documenso-description
feat/admin-ui-metrics
feat/avatar-fallback
feat/templates
feat/blog-post-next
fix/hide-user-selection
feat/disable-sign
feat/marketing-mobile-nav
chore/remove-console-log-warn
feat/add-email-field
fix/redirect-signin-to-dashboard
feat/blog-og-image
feat/redirect-on-send
feat/billing-page
feat/profile-password-form
fix/signature-color-dark-mode
feat/inbox
feat/promise-safety
readme
chore/reduce-refetch-time
feat/update-document-flow
feat/refactor-shared-components
feat/feature-flag
feat/document-authoring
feat/pie-chart-legend
feat/open-page
docs/add-gitpod-setup
docs/add-render-deploy
docs-coventional-commits
feat/table-actions
minor/updates-google-auth-refresh
feat/add-document-animation
feat/new-email-template
feat/password-reset
fix/send-error-double-send
fix/improve-stripe-webhook-endpoint
feat/support-custom-cert-paths
feat/DOC-170-add-name-field
fix/improve-general-styling
feat/DOC-210-sign-dialog-broken-on-second-opening
bugfix-#71/invalid-email-hint
chore/optimise-deps
test-pr
v2.9.1
v2.9.0
v2.8.1
v2.8.0
v2.7.1
v2.7.0
v2.6.1
v2.6.0
v2.5.1
v2.5.0
v2.4.0
v2.3.2
v2.3.1
v2.3.0
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.0
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v1.13.2
v1.13.1
v1.13.0
v1.12.10
v1.12.9
v1.12.8
v1.12.7
v1.12.6
v1.12.5
v1.12.4
v1.12.3
v1.12.2-rc.6
v1.12.2-rc.5
v1.12.2-rc.4
v1.12.2-rc.3
v1.12.2-rc.2
v1.12.2-rc.1
v1.12.2-rc.0
v1.12.1
v1.12.0
v1.12.0-rc.8
v1.12.0-rc.7
v1.12.0-rc.6
v1.12.0-rc.5
v1.12.0-rc.4
v1.12.0-rc.3
v1.12.0-rc.2
v1.12.0-rc.1
v1.12.0-rc.0
v1.11.1
v1.11.0
v1.10.3
v1.10.2
v1.10.1
v1.10.0
v1.10.0-rc.5
v1.10.0-rc.4
v1.10.0-rc.3
v1.10.0-rc.2
v1.10.0-rc.1
v1.10.0-rc.0
v1.9.1-rc.9
v1.9.1
v1.9.1-rc.8
v1.9.1-rc.7
v1.9.1-rc.6
v1.9.1-rc.5
v1.9.1-rc.4
v1.9.1-rc.3
v1.9.1-rc.2
v1.9.1-rc.1
v1.9.1-rc.0
v1.9.0
v1.9.0-rc.12
v1.9.0-rc.11
v1.9.0-rc.10
v1.9.0-rc.9
v1.9.0-rc.8
v1.9.0-rc.7
v1.9.0-rc.6
v1.9.0-rc.5
final-marketing-release
v1.9.0-rc.4
v1.9.0-rc.3
v1.9.0-rc.2
v1.9.0-rc.1
v1.9.0-rc.0
v1.8.1
v1.8.1-rc.9
v1.8.1-rc.8
v1.8.1-rc.7
v1.8.1-rc.6
v1.8.1-rc.5
v1.8.1-rc.4
v1.8.1-rc.3
v1.8.1-rc.2
v1.8.1-rc.1
v1.8.1-rc.0
v1.8.0-rc.4
v1.8.0
v1.8.0-rc.3
v1.8.0-rc.2
v1.8.0-rc.1
v1.8.0-rc.0
v1.7.2
v1.7.2-rc.4
v1.7.2-rc.3
v1.7.2-rc.2
v1.7.2-rc.1
v1.7.2-rc.0
v1.7.1-rc.3
v1.7.1
v1.7.1-rc.2
v1.7.1-rc.1
v1.7.1-rc.0
v1.7.0
v1.7.0-rc.5
v1.7.0-rc.4
v1.7.0-rc.3
v1.7.0-rc.2
v1.7.0-rc.1
v1.7.0-rc.0
v1.6.1
v1.6.1-rc.1
v1.6.1-rc.0
v1.6.0
v1.6.0-rc.3
v1.6.0-rc.2
v1.6.0-rc.1
v1.6.0-rc.0
v1.5.6
v1.5.6-rc.4
v1.5.6-rc.3
v1.5.6-rc.2
v1.5.6-rc.1
v1.5.6-rc.0
v1.5.5-rc.8
v1.5.5
v1.5.5-rc.7
v1.5.5-rc.6
v1.5.5-rc.5
v1.5.5-rc.4
v1.5.5-rc.3
v1.5.5-rc.2
v1.5.5-rc.1
v1.5.5-rc.0
v1.5.4-rc.5
v1.5.4
v1.5.4-rc.4
v1.5.4-rc.3
v1.5.4-rc.2
v1.5.4-rc.1
v1.5.4-rc.0
v1.5.3-rc.1
v1.5.3
v1.5.3-rc.0
v1.5.2-rc.8
v1.5.2
v1.5.2-rc.7
v1.5.2-rc.6
v1.5.2-rc.5
v1.5.2-rc.4
v1.5.2-rc.3
v1.5.2-rc.2
v1.5.2-rc.1
v1.5.2-rc.0
v1.5.1
v1.5.1-rc.0
v1.5.0-rc.6
v1.5.0
v1.5.0-rc.5
v1.5.0-rc.4
v1.5.0-rc.3
v1.5.0-rc.2
v1.5.0-rc.1
v1.5.0-rc.0
v1.4.0-rc.0
v1.4.0
v1.3.2-rc.0
v1.3.1-rc.2
v1.3.1
v1.3.1-rc.1
v1.3.1-rc.0
v1.3.0-rc.2
v1.3.0
v1.3.0-rc.1
v1.3.0-rc.0
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.1
v1.0
v0.9
before-prettier
0.9-developer-preview
Labels
Clear labels
Mirrored from GitHub Pull Request
Compliance
Stale
apps: marketing
apps: web
community
component: api
component: integrations
component: ui
duplicate
effort: low
effort: medium
good first issue
hacktoberfest
help wanted
needs triage
needs-replication
needs-testing
on-hold
osshack
priority: high
priority: low
priority: medium
pull-request
Mirrored from GitHub Pull Request
question
roadmap
status: assigned
status: blocked
status: in progress
status: triage
type: bug
type: bug
type: bug
type: documentation
type: enhancement
type: feature
wontfix
💎 Bounty
💰 Rewarded
💰 Rewarded
No labels
Compliance
Stale
apps: marketing
apps: web
community
component: api
component: integrations
component: ui
duplicate
effort: low
effort: medium
good first issue
hacktoberfest
help wanted
needs triage
needs-replication
needs-testing
on-hold
osshack
priority: high
priority: low
priority: medium
pull-request
question
roadmap
status: assigned
status: blocked
status: in progress
status: triage
type: bug
type: bug
type: bug
type: documentation
type: enhancement
type: feature
wontfix
💎 Bounty
💰 Rewarded
💰 Rewarded
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
starred/documenso#589
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Tschatscher85 on GitHub (Oct 3, 2025).
Original GitHub issue: https://github.com/documenso/documenso/issues/2060
Describe the improvement you are suggesting in detail
t:
Docker Image: documenso/documenso:latest
Platform: Ubuntu 24.04 LTS
Installation: Docker Compose (self-hosted)
Problem Description:
When a recipient signs a document, the signing process completes successfully and emails are sent. However, the document status remains "PENDING" instead of changing to "COMPLETED".
Root Cause:
The internal.seal-document job fails because Playwright/Chromium is not installed in the Docker container. The error logs show:
Failed to get certificate PDF
browserType.launch: Executable doesn't exist at /home/nodejs/.cache/ms-playwright/chromium_headless_shell-1169/chrome-linux/headless_shell
Please run the following command to download new browsers:
npx playwright install
Why it can't be fixed manually:
Attempting to run npx playwright install --with-deps chromium inside the container fails with:
su: must be suid to work properly
Failed to install browsers
Error: Installation process exited with code: 1
The container runs as an unprivileged user (nodejs) and doesn't allow system package installation.
Impact:
Documents are successfully signed (signatures are valid)
Status remains "PENDING" forever
No audit trail PDF is generated
Certificate sealing fails
Expected Behavior:
The Docker image should include Playwright/Chromium pre-installed, or provide a way to install it without requiring root privileges.
Workaround:
Currently none. Documents can be signed but won't show as "COMPLETED" in the system.
Request:
Could you please either:
Include Playwright/Chromium in the official Docker image
Provide instructions for building a custom image with Playwright
Make the audit trail PDF generation optional/disable-able
Logs:
Full error trace shows the seal-document job retries 4 times before giving up with BackgroundTaskExceededRetriesError.
Additional Information & Alternatives (optional)
No response
Do you want to work on this improvement?
No
Please check the boxes that apply to this improvement suggestion.
@github-actions[bot] commented on GitHub (Oct 3, 2025):
Thank you for opening your first issue and for being a part of the open signing revolution!
One of our team members will review it and get back to you as soon as it possible 💚
Meanwhile, please feel free to hop into our community in Discord
@DerpBicycle commented on GitHub (Oct 5, 2025):
I am also encountering this issue.
@Tschatscher85 commented on GitHub (Oct 5, 2025):
But no one has a solution ;(
@DerpBicycle commented on GitHub (Oct 5, 2025):
You can disable certificate signing in your settings as a temp fix.
@Tschatscher85 commented on GitHub (Oct 5, 2025):
Oh, how do I do that? Will it then show as completed or pending?
@DerpBicycle commented on GitHub (Oct 5, 2025):
I removed the variable related to the cert, and disabled the cert option in documenso’s settings. That way you can sign documents and complete them.
@Tschatscher85 commented on GitHub (Oct 5, 2025):
Something like that?
@Tschatscher85 commented on GitHub (Oct 5, 2025):
I've paid it, but despite signing, it still shows as outstanding ;(
@DerpBicycle commented on GitHub (Oct 5, 2025):
Let’s hope someone can fix it :)
@dexit commented on GitHub (Oct 7, 2025):
Just so you know, i am no guru, just someone trying to solve this issue as well, and i've circumvented this somehow by:
I've battled the same issue, but if you go to the DOCKER CONTAINER and Logon to it via SSH/Terminal, you can edit the :
file by typing:
to start INPUT, press down the letter "i" on keyboard then use keybaord arrows to navigate down, until you find the prisma migrate command mentioned below, then right click paste.
Then copy paste the below just after the line "npx prisma migrate deploy --schema ../../packages/prisma/schema.prisma" :
Once you have added the lines, just hit "ESC" this changes the input mode, and the just type ":wq" and hit enter.
Now if you can "Restart" the Docker Instance, and voila it will work.
The file should look like this :
Now the certificate still is necessary, as it might fail wheni t cant find it or read it.
So ensure that it exists and is accessible, the PLAYWRIGHT can be fixed by updating the docker files i believe.
@dexit commented on GitHub (Oct 7, 2025):
Please follow the following : https://github.com/documenso/documenso/issues/1634#issuecomment-2948258699
Create a new docker-compose.yml with the following contents :
And then within the folder of this "docker-compose.yml" execute the command :
This will result it :
Then you can tap into the "headless" container named "Chrome"
and you shall see something similar to this :
Now the system has told you what is the local network WS address "2025-10-07T10:37:51.574603190Z Local network ws:172.19.0.2:3000"
Nowing this now go to your DOCUMENSO instance and add a new ENV variable :
Change the "YOUR_LOCAL_WS_URL_FROM_HEADLESS_LOG" value to the value needed, in this case : "ws:172.19.0.2:3000"
Then you will see once a docuemnts is initialized in the "HEADLESS" chrome instance logs something like :
Then you know its working same as in the DOCUMENSO instance logs:
@Tschatscher85 commented on GitHub (Oct 7, 2025):
Hallo, leider hat es nicht geklapp?
# NEU: Headless-Chrome (browserless) – wie im Screenshot chrome: image: browserless/chrome:latest container_name: Chrome hostname: headless ports: - "3001:3000" # extern 3001 → intern 3000 (browserless) environment: - MAX_CONCURRENT_SESSIONS=10 - MAX_QUEUE_LENGTH=20 restart: unless-stopped- NEXT_PRIVATE_BROWSERLESS_URL=ws:192.168.112.2:3000@Trillion26 commented on GitHub (Oct 10, 2025):
Any update on this one?
@Novapixel1010 commented on GitHub (Oct 23, 2025):
Have you looked at my comment #1634 or my PR #2081. That may help?
@pablog12 commented on GitHub (Nov 3, 2025):
I solved this like this, I am using docker swarm.
I had to run the container as 'root' and replaced the startup command like so (its not great practice, and takes a bit to deploy, but it works):
@lib4u commented on GitHub (Nov 7, 2025):
wow this really works for me, thanks bro
@michaelmcg commented on GitHub (Nov 27, 2025):
Seems like I was able to get this resolved by creating a custom Dockerfile that installs Alpine's chromium package and then symlink'd it.
Example Dockerfile:
I did encounter one issue after this (Failed to get private key bags), resulting in having to use the -legacy flag to generate the p12 cert:
Afterwards, I was able to successfully complete a workflow.
@CodeBleu commented on GitHub (Dec 1, 2025):
This worked for me as well. Thanks!
I will note that my logs did show this, even though it shows "COMPLETED" now in the Background Jobs for sealing the doc.
@Novapixel1010 commented on GitHub (Dec 1, 2025):
Last I checked Playwright’s lacks official Alpine support. So I would stick with
This is what worked for me. I have not tried this on V2 yet but I should be trying it today.
@skttbv commented on GitHub (Dec 30, 2025):
I think this is the most important bug that needs to be solved on the docker image, but just solved with the help of this thread, thank you
@Ange7 commented on GitHub (Dec 30, 2025):
I try this but not working
Nothing in log...
but some errors when i'm on sign page