pdf 2026-05-12T14:35:02.918044642Z [34mโ[0m [36mINFO[0m[0024] ARG GITHUB_TOKEN_BUILD pdf 2026-05-12T14:35:02.918047888Z [34mโ[0m [36mINFO[0m[0024] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:35:02.918049795Z [34mโ[0m [36mINFO[0m[0024] ARG timezone=Asia/Bangkok pdf 2026-05-12T14:35:02.918056093Z [34mโ[0m [36mINFO[0m[0024] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:35:02.918058002Z [34mโ[0m [36mINFO[0m[0024] ENV GITHUB_USER $GITHUB_USER_BUILD pdf 2026-05-12T14:35:02.918060072Z [34mโ[0m [36mINFO[0m[0024] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:35:02.918061815Z [34mโ[0m [36mINFO[0m[0024] ENV GITHUB_TOKEN $GITHUB_TOKEN_BUILD pdf 2026-05-12T14:35:02.918063520Z [34mโ[0m [36mINFO[0m[0024] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:35:02.918065932Z [34mโ[0m [36mINFO[0m[0024] ENV TZ $timezone pdf 2026-05-12T14:35:02.918067705Z [34mโ[0m [36mINFO[0m[0024] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:35:02.918308027Z [34mโ[0m [36mINFO[0m[0024] WORKDIR /app pdf 2026-05-12T14:35:02.918310256Z [34mโ[0m [36mINFO[0m[0024] Cmd: workdir pdf 2026-05-12T14:35:02.918312045Z [34mโ[0m [36mINFO[0m[0024] Changed working directory to /app pdf 2026-05-12T14:35:02.918313841Z [34mโ[0m [36mINFO[0m[0024] Creating directory /app with uid -1 and gid -1 pdf 2026-05-12T14:35:02.918315683Z [34mโ[0m [36mINFO[0m[0024] Taking snapshot of files... pdf 2026-05-12T14:35:02.919970533Z [34mโ[0m [36mINFO[0m[0024] Resolving srcs [go.*]... pdf 2026-05-12T14:35:02.920631303Z [34mโ[0m [36mINFO[0m[0024] COPY go.* ./ pdf 2026-05-12T14:35:02.920634637Z [34mโ[0m [36mINFO[0m[0024] Resolving srcs [go.*]... pdf 2026-05-12T14:35:02.930248298Z [34mโ[0m [36mINFO[0m[0024] Taking snapshot of files... pdf 2026-05-12T14:35:02.931811892Z [34mโ[0m [36mINFO[0m[0024] RUN go mod download && go mod verify pdf 2026-05-12T14:35:02.931816122Z [34mโ[0m [36mINFO[0m[0024] Found cached layer, extracting to filesystem pdf 2026-05-12T14:35:47.574986495Z [34mโ[0m [36mINFO[0m[0069] COPY . . pdf 2026-05-12T14:35:47.767338345Z [34mโ[0m [36mINFO[0m[0069] Taking snapshot of files... pdf 2026-05-12T14:35:48.376055915Z [34mโ[0m [36mINFO[0m[0070] RUN go test -v ./... && CGO_ENABLED=0 go build -v -installsuffix 'static' -ldflags="-X 'main.version=$(git rev-parse --short HEAD)' -X 'main.build=$(date --iso-8601=seconds)'" -o dist/server ./cmd/server pdf 2026-05-12T14:35:48.778227392Z [34mโ[0m [36mINFO[0m[0070] Cmd: /bin/sh pdf 2026-05-12T14:35:48.778266065Z [34mโ[0m [36mINFO[0m[0070] Args: [-c go test -v ./... && CGO_ENABLED=0 go build -v -installsuffix 'static' -ldflags="-X 'main.version=$(git rev-parse --short HEAD)' -X 'main.build=$(date --iso-8601=seconds)'" -o dist/server ./cmd/server] pdf 2026-05-12T14:35:48.778284472Z [34mโ[0m [36mINFO[0m[0070] Running: [/bin/sh -c go test -v ./... && CGO_ENABLED=0 go build -v -installsuffix 'static' -ldflags="-X 'main.version=$(git rev-parse --short HEAD)' -X 'main.build=$(date --iso-8601=seconds)'" -o dist/server ./cmd/server] pdf 2026-05-12T14:35:56.112140456Z [34mโ[0m ? github.com/s0ngkran/pdf_watermark_process/cmd/make_blank [no test files] pdf 2026-05-12T14:36:04.093771020Z [34mโ[0m ? github.com/s0ngkran/pdf_watermark_process/cmd/sample_watermark [no test files] pdf 2026-05-12T14:36:04.471562126Z [34mโ[0m ? github.com/s0ngkran/pdf_watermark_process/cmd/server [no test files] pdf 2026-05-12T14:36:04.471592450Z [34mโ[0m ? github.com/s0ngkran/pdf_watermark_process/internal/assets/fonts [no test files] pdf 2026-05-12T14:36:04.498866204Z [34mโ[0m === RUN TestLoadConfig_Defaults pdf 2026-05-12T14:36:04.498909862Z [34mโ[0m === RUN TestLoadConfig_Defaults/App.Port pdf 2026-05-12T14:36:04.498913072Z [34mโ[0m === RUN TestLoadConfig_Defaults/Worker.CPURatio pdf 2026-05-12T14:36:04.498915823Z [34mโ[0m === RUN TestLoadConfig_Defaults/Worker.MinPagesForParallel pdf 2026-05-12T14:36:04.498918563Z [34mโ[0m === RUN TestLoadConfig_Defaults/Watermark.DefaultOpacity pdf 2026-05-12T14:36:04.498921080Z [34mโ[0m === RUN TestLoadConfig_Defaults/Watermark.DefaultFontSize pdf 2026-05-12T14:36:04.498923360Z [34mโ[0m === RUN TestLoadConfig_Defaults/Watermark.DefaultCopies pdf 2026-05-12T14:36:04.498926234Z [34mโ[0m === RUN TestLoadConfig_Defaults/Watermark.Rotation pdf 2026-05-12T14:36:04.498928526Z [34mโ[0m === RUN TestLoadConfig_Defaults/Watermark.Font pdf 2026-05-12T14:36:04.498930811Z [34mโ[0m === RUN TestLoadConfig_Defaults/Memory.Threshold pdf 2026-05-12T14:36:04.498933124Z [34mโ[0m === RUN TestLoadConfig_Defaults/Memory.MaxConcurrentJobs pdf 2026-05-12T14:36:04.498935419Z [34mโ[0m --- PASS: TestLoadConfig_Defaults (0.00s) pdf 2026-05-12T14:36:04.498937573Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/App.Port (0.00s) pdf 2026-05-12T14:36:04.498939643Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Worker.CPURatio (0.00s) pdf 2026-05-12T14:36:04.498942155Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Worker.MinPagesForParallel (0.00s) pdf 2026-05-12T14:36:04.498944406Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Watermark.DefaultOpacity (0.00s) pdf 2026-05-12T14:36:04.498946601Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Watermark.DefaultFontSize (0.00s) pdf 2026-05-12T14:36:04.498948990Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Watermark.DefaultCopies (0.00s) pdf 2026-05-12T14:36:04.498951125Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Watermark.Rotation (0.00s) pdf 2026-05-12T14:36:04.498953277Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Watermark.Font (0.00s) pdf 2026-05-12T14:36:04.498955638Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Memory.Threshold (0.00s) pdf 2026-05-12T14:36:04.499046330Z [34mโ[0m --- PASS: TestLoadConfig_Defaults/Memory.MaxConcurrentJobs (0.00s) pdf 2026-05-12T14:36:04.499068325Z [34mโ[0m === RUN TestLoadConfig_EmptyName pdf 2026-05-12T14:36:04.499071848Z [34mโ[0m --- PASS: TestLoadConfig_EmptyName (0.00s) pdf 2026-05-12T14:36:04.499074875Z [34mโ[0m PASS pdf 2026-05-12T14:36:04.499077596Z [34mโ[0m ok github.com/s0ngkran/pdf_watermark_process/internal/config 0.025s pdf 2026-05-12T14:36:10.028950454Z [34mโ[0m === RUN TestMerge_CountExceedsMax pdf 2026-05-12T14:36:10.028978858Z [34mโ[0m 2026/05/12 21:36:04 [Merge] Request received from 0.0.0.0, Content-Length: 4320 pdf 2026-05-12T14:36:10.028981699Z [34mโ[0m --- PASS: TestMerge_CountExceedsMax (0.00s) pdf 2026-05-12T14:36:10.028983469Z [34mโ[0m === RUN TestMerge_CountAtMax pdf 2026-05-12T14:36:10.028996971Z [34mโ[0m 2026/05/12 21:36:04 [Merge] Request received from 0.0.0.0, Content-Length: 4122 pdf 2026-05-12T14:36:10.028998743Z [34mโ[0m 2026/05/12 21:36:04 [Merge] Merging 20 PDFs pdf 2026-05-12T14:36:10.029001092Z [34mโ[0m 2026/05/12 21:36:04 [DEBUG] NewProcessor: created temp directory: /tmp/pdf_watermark_3708300568 pdf 2026-05-12T14:36:10.029007127Z [34mโ[0m 2026/05/12 21:36:04 [DEBUG] MergePDFs: starting, 20 PDFs to merge pdf 2026-05-12T14:36:10.029154229Z [34mโ[0m 2026/05/12 21:36:04 [ERROR] MergePDFs: failed to read PDF 0: ReadContext failed: Read: xRefTable failed: pdfcpu: can't find last xref section pdf 2026-05-12T14:36:10.029179307Z [34mโ[0m 2026/05/12 21:36:04 [Merge] Failed to merge PDFs: failed to read PDF 0: ReadContext failed: Read: xRefTable failed: pdfcpu: can't find last xref section pdf 2026-05-12T14:36:10.029182086Z [34mโ[0m --- PASS: TestMerge_CountAtMax (0.00s) pdf 2026-05-12T14:36:10.029183893Z [34mโ[0m === RUN TestMerge_TotalSizeExceedsMax pdf 2026-05-12T14:36:10.029186155Z [34mโ[0m 2026/05/12 21:36:09 [Merge] Request received from 0.0.0.0, Content-Length: 125829653 pdf 2026-05-12T14:36:10.029187951Z [34mโ[0m --- PASS: TestMerge_TotalSizeExceedsMax (4.11s) pdf 2026-05-12T14:36:10.029190116Z [34mโ[0m === RUN TestMerge_CountZero pdf 2026-05-12T14:36:10.029192488Z [34mโ[0m 2026/05/12 21:36:09 [Merge] Request received from 0.0.0.0, Content-Length: 181 pdf 2026-05-12T14:36:10.029202063Z [34mโ[0m --- PASS: TestMerge_CountZero (0.00s) pdf 2026-05-12T14:36:10.029203746Z [34mโ[0m === RUN TestMerge_CountOne_PassesValidator pdf 2026-05-12T14:36:10.029205573Z [34mโ[0m 2026/05/12 21:36:09 [Merge] Request received from 0.0.0.0, Content-Length: 377 pdf 2026-05-12T14:36:10.029207222Z [34mโ[0m 2026/05/12 21:36:09 [Merge] Merging 1 PDFs pdf 2026-05-12T14:36:10.029208988Z [34mโ[0m 2026/05/12 21:36:09 [DEBUG] NewProcessor: created temp directory: /tmp/pdf_watermark_1255647466 pdf 2026-05-12T14:36:10.029397156Z [34mโ[0m 2026/05/12 21:36:09 [DEBUG] MergePDFs: starting, 1 PDFs to merge pdf 2026-05-12T14:36:10.029400467Z [34mโ[0m 2026/05/12 21:36:09 [DEBUG] MergePDFs: only 1 PDF, returning as-is pdf 2026-05-12T14:36:10.029402169Z [34mโ[0m 2026/05/12 21:36:09 [Merge] Success: merged 1 PDFs into 20 bytes pdf 2026-05-12T14:36:10.029403991Z [34mโ[0m --- PASS: TestMerge_CountOne_PassesValidator (0.00s) pdf 2026-05-12T14:36:10.029406110Z [34mโ[0m === RUN TestMerge_InvalidPDF pdf 2026-05-12T14:36:10.029408297Z [34mโ[0m 2026/05/12 21:36:09 [Merge] Request received from 0.0.0.0, Content-Length: 562 pdf 2026-05-12T14:36:10.029410560Z [34mโ[0m --- PASS: TestMerge_InvalidPDF (0.00s) pdf 2026-05-12T14:36:10.029412192Z [34mโ[0m === RUN TestTextStampV2_HappyPath_WithLastUpdated pdf 2026-05-12T14:36:10.029414550Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=51e3f42dd95c08a222f55ad12ee04936dc10b3d3073cc73037d606fb4c84, Content-Length: 7244 pdf 2026-05-12T14:36:10.029417282Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] PDF file received: name=sample.pdf, size=6224 bytes pdf 2026-05-12T14:36:10.029423870Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Parameters: id=42, name=เธชเธกเธเธฒเธข เนเธเธเธต, name_en=Somchai Jaidee, citizen_id=1234567890123 pdf 2026-05-12T14:36:10.029425580Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Starting layered PDF processing... pdf 2026-05-12T14:36:10.029427280Z [34mโ[0m 2026/05/12 21:36:09 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.029428882Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Processing complete, output size: 77669 bytes pdf 2026-05-12T14:36:10.029431002Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url= pages=1 memory_pct_start=0.0 duration_ms=11 outcome=success error="" pdf 2026-05-12T14:36:10.029435775Z [34mโ[0m --- PASS: TestTextStampV2_HappyPath_WithLastUpdated (0.01s) pdf 2026-05-12T14:36:10.029437446Z [34mโ[0m === RUN TestTextStampV2_HappyPath_Multipart pdf 2026-05-12T14:36:10.029439179Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=1d5411fadeaaf394b475211325c3d52e0f38269aa74e4a6a2d07b3f95288, Content-Length: 6981 pdf 2026-05-12T14:36:10.029441048Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] PDF file received: name=sample.pdf, size=6224 bytes pdf 2026-05-12T14:36:10.029442705Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Parameters: id=42, name=เธชเธกเธเธฒเธข เนเธเธเธต, name_en=Somchai Jaidee, citizen_id=1234567890123 pdf 2026-05-12T14:36:10.029444462Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Starting layered PDF processing... pdf 2026-05-12T14:36:10.029446107Z [34mโ[0m 2026/05/12 21:36:09 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.029447857Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Processing complete, output size: 70814 bytes pdf 2026-05-12T14:36:10.029449497Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url= pages=1 memory_pct_start=0.0 duration_ms=10 outcome=success error="" pdf 2026-05-12T14:36:10.029451298Z [34mโ[0m --- PASS: TestTextStampV2_HappyPath_Multipart (0.01s) pdf 2026-05-12T14:36:10.029452992Z [34mโ[0m === RUN TestTextStampV2_MissingPDF pdf 2026-05-12T14:36:10.029454749Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=4f7679360928402a17388333cc38c0c906af84b5c6053bc0af1e6d98df12, Content-Length: 292 pdf 2026-05-12T14:36:10.029456565Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url= pages=-1 memory_pct_start=0.0 duration_ms=0 outcome=error error="PDF file or pdf_url is required" pdf 2026-05-12T14:36:10.029458413Z [34mโ[0m --- PASS: TestTextStampV2_MissingPDF (0.00s) pdf 2026-05-12T14:36:10.029460295Z [34mโ[0m === RUN TestTextStampV2_MissingID_Allowed pdf 2026-05-12T14:36:10.029462022Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=2b31c5b090e4e3f1ac2d447e978e25ad2ab50f7d27783fad40a426eca596, Content-Length: 6579 pdf 2026-05-12T14:36:10.029463797Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] PDF file received: name=sample.pdf, size=6224 bytes pdf 2026-05-12T14:36:10.029465400Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Parameters: id=, name=n, name_en=, citizen_id= pdf 2026-05-12T14:36:10.029467358Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Starting layered PDF processing... pdf 2026-05-12T14:36:10.029469143Z [34mโ[0m 2026/05/12 21:36:09 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.029470693Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Processing complete, output size: 65121 bytes pdf 2026-05-12T14:36:10.029472425Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url= pages=1 memory_pct_start=0.0 duration_ms=9 outcome=success error="" pdf 2026-05-12T14:36:10.029474082Z [34mโ[0m --- PASS: TestTextStampV2_MissingID_Allowed (0.01s) pdf 2026-05-12T14:36:10.029475803Z [34mโ[0m === RUN TestTextStampV2_MissingName pdf 2026-05-12T14:36:10.029481098Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=3143071bd409824427aa53690a7d30980c91697947d82c20e43f3972f1c6, Content-Length: 6577 pdf 2026-05-12T14:36:10.029482804Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] PDF file received: name=sample.pdf, size=6224 bytes pdf 2026-05-12T14:36:10.029485178Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url= pages=1 memory_pct_start=0.0 duration_ms=0 outcome=error error="name required" pdf 2026-05-12T14:36:10.029486956Z [34mโ[0m --- PASS: TestTextStampV2_MissingName (0.00s) pdf 2026-05-12T14:36:10.029490832Z [34mโ[0m === RUN TestTextStampV2_SSRFURLBlocked pdf 2026-05-12T14:36:10.029492423Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=88dbf230ef9c67ffa0bfcc2d37befec7dd9c3874055a2a360117792f6be8, Content-Length: 426 pdf 2026-05-12T14:36:10.029493956Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] ERROR: Invalid PDF URL: url host resolves to a non-public address pdf 2026-05-12T14:36:10.029495647Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url=http://127.0.0.1/x pages=-1 memory_pct_start=0.0 duration_ms=0 outcome=error error="Invalid PDF URL: url host resolves to a non-public address" pdf 2026-05-12T14:36:10.029497293Z [34mโ[0m --- PASS: TestTextStampV2_SSRFURLBlocked (0.00s) pdf 2026-05-12T14:36:10.029498878Z [34mโ[0m === RUN TestTextStampV2_SSRFSchemeBlocked pdf 2026-05-12T14:36:10.029500498Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=a7817624dc9561a843875209af7936a5dff02e0af296807a0979ed661522, Content-Length: 426 pdf 2026-05-12T14:36:10.029502046Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] ERROR: Invalid PDF URL: only http(s) URLs are allowed pdf 2026-05-12T14:36:10.029504926Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url=file:///etc/passwd pages=-1 memory_pct_start=0.0 duration_ms=0 outcome=error error="Invalid PDF URL: only http(s) URLs are allowed" pdf 2026-05-12T14:36:10.029506642Z [34mโ[0m --- PASS: TestTextStampV2_SSRFSchemeBlocked (0.00s) pdf 2026-05-12T14:36:10.029508206Z [34mโ[0m === RUN TestTextStampV2_EmptyBody pdf 2026-05-12T14:36:10.029509846Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=x, Content-Length: 0 pdf 2026-05-12T14:36:10.029511621Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] ERROR: Failed to parse multipart form: form size must be greater than 0. Given 0 pdf 2026-05-12T14:36:10.029513293Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url= pages=-1 memory_pct_start=0.0 duration_ms=0 outcome=error error="Failed to parse multipart form: form size must be greater than 0. Given 0" pdf 2026-05-12T14:36:10.029514857Z [34mโ[0m --- PASS: TestTextStampV2_EmptyBody (0.00s) pdf 2026-05-12T14:36:10.029516415Z [34mโ[0m === RUN TestTextStampV2_ServiceErrorMapsTo500 pdf 2026-05-12T14:36:10.029518048Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=80191bc325ec29e241ef205d5b9c9f7cdb5fe357437cb505ce7d01d55aaa, Content-Length: 485 pdf 2026-05-12T14:36:10.029519600Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] PDF file received: name=sample.pdf, size=18 bytes pdf 2026-05-12T14:36:10.029521316Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Parameters: id=1, name=n, name_en=, citizen_id= pdf 2026-05-12T14:36:10.029523056Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Starting layered PDF processing... pdf 2026-05-12T14:36:10.029524791Z [34mโ[0m 2026/05/12 21:36:09 [LayeredStamp] OCG hide failed (passthrough): ocg: read context: ReadContext failed: Read: xRefTable failed: pdfcpu: can't find last xref section pdf 2026-05-12T14:36:10.029526640Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] ERROR: Failed to process PDF: layered stamp: page dims: dims: read: ReadContext failed: Read: xRefTable failed: pdfcpu: can't find last xref section pdf 2026-05-12T14:36:10.029529919Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url= pages=-1 memory_pct_start=0.0 duration_ms=0 outcome=error error="layered stamp: page dims: dims: read: ReadContext failed: Read: xRefTable failed: pdfcpu: can't find last xref section" pdf 2026-05-12T14:36:10.029531742Z [34mโ[0m --- PASS: TestTextStampV2_ServiceErrorMapsTo500 (0.00s) pdf 2026-05-12T14:36:10.029533643Z [34mโ[0m === RUN TestNewTextStampV2Handler_NoMonitor pdf 2026-05-12T14:36:10.029537248Z [34mโ[0m --- PASS: TestNewTextStampV2Handler_NoMonitor (0.00s) pdf 2026-05-12T14:36:10.029538921Z [34mโ[0m === RUN TestNewTextStampV2HandlerWithMonitor_StoresMonitor pdf 2026-05-12T14:36:10.029540458Z [34mโ[0m --- PASS: TestNewTextStampV2HandlerWithMonitor_StoresMonitor (0.00s) pdf 2026-05-12T14:36:10.029542142Z [34mโ[0m === RUN TestDownloadPDF_HappyPath pdf 2026-05-12T14:36:10.029543867Z [34mโ[0m --- PASS: TestDownloadPDF_HappyPath (0.00s) pdf 2026-05-12T14:36:10.029545469Z [34mโ[0m === RUN TestDownloadPDF_Non200 pdf 2026-05-12T14:36:10.029547025Z [34mโ[0m --- PASS: TestDownloadPDF_Non200 (0.00s) pdf 2026-05-12T14:36:10.029548646Z [34mโ[0m === RUN TestDownloadPDF_ExceedsSizeLimit pdf 2026-05-12T14:36:10.029557482Z [34mโ[0m --- PASS: TestDownloadPDF_ExceedsSizeLimit (0.80s) pdf 2026-05-12T14:36:10.029559077Z [34mโ[0m === RUN TestDownloadPDF_ConnectionRefused pdf 2026-05-12T14:36:10.029560770Z [34mโ[0m --- PASS: TestDownloadPDF_ConnectionRefused (0.00s) pdf 2026-05-12T14:36:10.029565369Z [34mโ[0m === RUN TestTextStampV2_PdfURL_ValidationReached pdf 2026-05-12T14:36:10.029566973Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Request received from 0.0.0.0, Content-Type: multipart/form-data; boundary=dd8c34a5f60c46aa79e7a9548f151020f3162978a1f505dafc839101b364, Content-Length: 446 pdf 2026-05-12T14:36:10.029568634Z [34mโ[0m 2026/05/12 21:36:09 [TextStampV2] Downloading PDF from URL: https://example.com/does-not-exist.pdf pdf 2026-05-12T14:36:10.029570185Z [34mโ[0m 2026/05/12 21:36:09 [text-stamp-v2] pdf_url=https://example.com/does-not-exist.pdf pages=-1 memory_pct_start=0.0 duration_ms=46 outcome=error error="Failed to download PDF: HTTP 404 Not Found" pdf 2026-05-12T14:36:10.029571821Z [34mโ[0m --- PASS: TestTextStampV2_PdfURL_ValidationReached (0.05s) pdf 2026-05-12T14:36:10.029573581Z [34mโ[0m === RUN TestReadPDFInput_CoversAllBranches pdf 2026-05-12T14:36:10.029575124Z [34mโ[0m --- PASS: TestReadPDFInput_CoversAllBranches (0.00s) pdf 2026-05-12T14:36:10.029577330Z [34mโ[0m PASS pdf 2026-05-12T14:36:10.029579070Z [34mโ[0m ok github.com/s0ngkran/pdf_watermark_process/internal/handler 5.023s pdf 2026-05-12T14:36:10.032179963Z [34mโ[0m ? github.com/s0ngkran/pdf_watermark_process/internal/memory [no test files] pdf 2026-05-12T14:36:10.032199274Z [34mโ[0m === RUN TestNewAPIKeyAuth pdf 2026-05-12T14:36:10.032202229Z [34mโ[0m === RUN TestNewAPIKeyAuth/valid_API_key_allows_request pdf 2026-05-12T14:36:10.032204084Z [34mโ[0m === RUN TestNewAPIKeyAuth/missing_API_key_returns_401 pdf 2026-05-12T14:36:10.032206149Z [34mโ[0m === RUN TestNewAPIKeyAuth/invalid_API_key_returns_401 pdf 2026-05-12T14:36:10.032209313Z [34mโ[0m === RUN TestNewAPIKeyAuth/health_check_skips_auth pdf 2026-05-12T14:36:10.032216578Z [34mโ[0m === RUN TestNewAPIKeyAuth/health_check_with_invalid_key_still_passes pdf 2026-05-12T14:36:10.032218409Z [34mโ[0m === RUN TestNewAPIKeyAuth/empty_configured_key_skips_auth_(dev_mode) pdf 2026-05-12T14:36:10.032220067Z [34mโ[0m === RUN TestNewAPIKeyAuth/empty_configured_key_skips_auth_even_with_header pdf 2026-05-12T14:36:10.032221882Z [34mโ[0m === RUN TestNewAPIKeyAuth/valid_key_on_merge_endpoint pdf 2026-05-12T14:36:10.032362629Z [34mโ[0m === RUN TestNewAPIKeyAuth/missing_key_on_merge_endpoint_returns_401 pdf 2026-05-12T14:36:10.032375468Z [34mโ[0m --- PASS: TestNewAPIKeyAuth (0.00s) pdf 2026-05-12T14:36:10.032377567Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/valid_API_key_allows_request (0.00s) pdf 2026-05-12T14:36:10.032379625Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/missing_API_key_returns_401 (0.00s) pdf 2026-05-12T14:36:10.032381310Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/invalid_API_key_returns_401 (0.00s) pdf 2026-05-12T14:36:10.032394262Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/health_check_skips_auth (0.00s) pdf 2026-05-12T14:36:10.032396053Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/health_check_with_invalid_key_still_passes (0.00s) pdf 2026-05-12T14:36:10.032397977Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/empty_configured_key_skips_auth_(dev_mode) (0.00s) pdf 2026-05-12T14:36:10.032401893Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/empty_configured_key_skips_auth_even_with_header (0.00s) pdf 2026-05-12T14:36:10.032403728Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/valid_key_on_merge_endpoint (0.00s) pdf 2026-05-12T14:36:10.032405392Z [34mโ[0m --- PASS: TestNewAPIKeyAuth/missing_key_on_merge_endpoint_returns_401 (0.00s) pdf 2026-05-12T14:36:10.032407449Z [34mโ[0m PASS pdf 2026-05-12T14:36:10.032409227Z [34mโ[0m ok github.com/s0ngkran/pdf_watermark_process/internal/middleware 0.006s pdf 2026-05-12T14:36:10.032411031Z [34mโ[0m === RUN TestChannelToByte pdf 2026-05-12T14:36:10.032412675Z [34mโ[0m --- PASS: TestChannelToByte (0.00s) pdf 2026-05-12T14:36:10.032414372Z [34mโ[0m === RUN TestToPdfY pdf 2026-05-12T14:36:10.032415984Z [34mโ[0m --- PASS: TestToPdfY (0.00s) pdf 2026-05-12T14:36:10.032417645Z [34mโ[0m === RUN TestLayer1RingPositions pdf 2026-05-12T14:36:10.032419600Z [34mโ[0m --- PASS: TestLayer1RingPositions (0.00s) pdf 2026-05-12T14:36:10.032421281Z [34mโ[0m === RUN TestBuildOverlayPDF_RejectsInvalidInputs pdf 2026-05-12T14:36:10.032422906Z [34mโ[0m --- PASS: TestBuildOverlayPDF_RejectsInvalidInputs (0.00s) pdf 2026-05-12T14:36:10.032424760Z [34mโ[0m === RUN TestBuildOverlayPDF_HappyPath_EmbeddedBytes pdf 2026-05-12T14:36:10.032426398Z [34mโ[0m --- PASS: TestBuildOverlayPDF_HappyPath_EmbeddedBytes (0.02s) pdf 2026-05-12T14:36:10.032428117Z [34mโ[0m === RUN TestBuildOverlayPDF_BadRegularFontBytes pdf 2026-05-12T14:36:10.032429728Z [34mโ[0m --- PASS: TestBuildOverlayPDF_BadRegularFontBytes (0.00s) pdf 2026-05-12T14:36:10.032431483Z [34mโ[0m === RUN TestBuildOverlayPDF_BadBoldFontBytes pdf 2026-05-12T14:36:10.032488148Z [34mโ[0m --- PASS: TestBuildOverlayPDF_BadBoldFontBytes (0.00s) pdf 2026-05-12T14:36:10.032491663Z [34mโ[0m === RUN TestBuildOverlayPDF_BytesWinOverPath pdf 2026-05-12T14:36:10.032493508Z [34mโ[0m --- PASS: TestBuildOverlayPDF_BytesWinOverPath (0.02s) pdf 2026-05-12T14:36:10.032495239Z [34mโ[0m === RUN TestBuildOverlayPDF_HappyPath_A4 pdf 2026-05-12T14:36:10.032496967Z [34mโ[0m --- PASS: TestBuildOverlayPDF_HappyPath_A4 (0.02s) pdf 2026-05-12T14:36:10.032498820Z [34mโ[0m === RUN TestBuildOverlayPDF_BlankFields_StillProducesPDF pdf 2026-05-12T14:36:10.032629224Z [34mโ[0m --- PASS: TestBuildOverlayPDF_BlankFields_StillProducesPDF (0.02s) pdf 2026-05-12T14:36:10.032632032Z [34mโ[0m === RUN TestBuildOverlayPDF_Landscape pdf 2026-05-12T14:36:10.032633702Z [34mโ[0m --- PASS: TestBuildOverlayPDF_Landscape (0.01s) pdf 2026-05-12T14:36:10.032639930Z [34mโ[0m === RUN TestBuildOverlayPDF_MissingFontFile pdf 2026-05-12T14:36:10.032641655Z [34mโ[0m --- PASS: TestBuildOverlayPDF_MissingFontFile (0.00s) pdf 2026-05-12T14:36:10.032643494Z [34mโ[0m === RUN TestStudentDataZeroValueIsValid pdf 2026-05-12T14:36:10.032645421Z [34mโ[0m --- PASS: TestStudentDataZeroValueIsValid (0.00s) pdf 2026-05-12T14:36:10.032647256Z [34mโ[0m === RUN TestBuildOverlayPDF_BadRegularFontPath pdf 2026-05-12T14:36:10.032648900Z [34mโ[0m --- PASS: TestBuildOverlayPDF_BadRegularFontPath (0.00s) pdf 2026-05-12T14:36:10.032650562Z [34mโ[0m === RUN TestBuildOverlayPDF_BadBoldFontPath pdf 2026-05-12T14:36:10.032652189Z [34mโ[0m --- PASS: TestBuildOverlayPDF_BadBoldFontPath (0.00s) pdf 2026-05-12T14:36:10.032654241Z [34mโ[0m === RUN TestLayerColorConstants pdf 2026-05-12T14:36:10.032655901Z [34mโ[0m --- PASS: TestLayerColorConstants (0.00s) pdf 2026-05-12T14:36:10.032671980Z [34mโ[0m === RUN TestLayer3BrandText pdf 2026-05-12T14:36:10.032673741Z [34mโ[0m --- PASS: TestLayer3BrandText (0.00s) pdf 2026-05-12T14:36:10.032778108Z [34mโ[0m === RUN TestLayer4LabelUsesEnDash pdf 2026-05-12T14:36:10.032782316Z [34mโ[0m --- PASS: TestLayer4LabelUsesEnDash (0.00s) pdf 2026-05-12T14:36:10.032784016Z [34mโ[0m === RUN TestBuildOverlayPDF_Layer3Renders pdf 2026-05-12T14:36:10.032785882Z [34mโ[0m --- PASS: TestBuildOverlayPDF_Layer3Renders (0.01s) pdf 2026-05-12T14:36:10.032787743Z [34mโ[0m === RUN TestBuildOverlayPDF_WithPdfName pdf 2026-05-12T14:36:10.032789475Z [34mโ[0m --- PASS: TestBuildOverlayPDF_WithPdfName (0.01s) pdf 2026-05-12T14:36:10.032791639Z [34mโ[0m === RUN TestBuildOverlayPDF_EmptyPdfName_NoCornerLayer pdf 2026-05-12T14:36:10.032793299Z [34mโ[0m --- PASS: TestBuildOverlayPDF_EmptyPdfName_NoCornerLayer (0.01s) pdf 2026-05-12T14:36:10.032795104Z [34mโ[0m === RUN TestDrawLayerCorner_RendersFullFormatWhenLastUpdatedSet pdf 2026-05-12T14:36:10.032797101Z [34mโ[0m --- PASS: TestDrawLayerCorner_RendersFullFormatWhenLastUpdatedSet (0.02s) pdf 2026-05-12T14:36:10.032798737Z [34mโ[0m === RUN TestDrawLayerCorner_OmitsLastUpdatedSuffixWhenEmpty pdf 2026-05-12T14:36:10.032800331Z [34mโ[0m --- PASS: TestDrawLayerCorner_OmitsLastUpdatedSuffixWhenEmpty (0.03s) pdf 2026-05-12T14:36:10.032802014Z [34mโ[0m === RUN TestHideWatermarkOCG_DisablesMatchingLayer pdf 2026-05-12T14:36:10.032803671Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: matched and disabled OCG "Watermark" pdf 2026-05-12T14:36:10.032805482Z [34mโ[0m --- PASS: TestHideWatermarkOCG_DisablesMatchingLayer (0.01s) pdf 2026-05-12T14:36:10.032807133Z [34mโ[0m === RUN TestHideWatermarkOCG_CaseInsensitiveMatch pdf 2026-05-12T14:36:10.032808849Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: matched and disabled OCG "Watermark" pdf 2026-05-12T14:36:10.032810495Z [34mโ[0m --- PASS: TestHideWatermarkOCG_CaseInsensitiveMatch (0.01s) pdf 2026-05-12T14:36:10.032812102Z [34mโ[0m === RUN TestHideWatermarkOCG_NoOCG_Passthrough pdf 2026-05-12T14:36:10.032814162Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.032815858Z [34mโ[0m --- PASS: TestHideWatermarkOCG_NoOCG_Passthrough (0.00s) pdf 2026-05-12T14:36:10.032817400Z [34mโ[0m === RUN TestHideWatermarkOCG_OCGWithDifferentName_Passthrough pdf 2026-05-12T14:36:10.032818982Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.032820667Z [34mโ[0m --- PASS: TestHideWatermarkOCG_OCGWithDifferentName_Passthrough (0.00s) pdf 2026-05-12T14:36:10.032822368Z [34mโ[0m === RUN TestOcgNameEquals_SupportsStringLiteralAndHex pdf 2026-05-12T14:36:10.032823951Z [34mโ[0m --- PASS: TestOcgNameEquals_SupportsStringLiteralAndHex (0.00s) pdf 2026-05-12T14:36:10.032825491Z [34mโ[0m === RUN TestHideWatermarkOCG_GarbageInput_ReturnsError pdf 2026-05-12T14:36:10.032827003Z [34mโ[0m --- PASS: TestHideWatermarkOCG_GarbageInput_ReturnsError (0.00s) pdf 2026-05-12T14:36:10.032828811Z [34mโ[0m === RUN TestApplyOverlayPages_SinglePage pdf 2026-05-12T14:36:10.032830389Z [34mโ[0m --- PASS: TestApplyOverlayPages_SinglePage (0.02s) pdf 2026-05-12T14:36:10.032831957Z [34mโ[0m === RUN TestApplyOverlayPages_MultiPage_AllPages pdf 2026-05-12T14:36:10.032833676Z [34mโ[0m --- PASS: TestApplyOverlayPages_MultiPage_AllPages (0.02s) pdf 2026-05-12T14:36:10.032835339Z [34mโ[0m === RUN TestApplyOverlayPages_SpecificPages pdf 2026-05-12T14:36:10.032836975Z [34mโ[0m --- PASS: TestApplyOverlayPages_SpecificPages (0.03s) pdf 2026-05-12T14:36:10.032838587Z [34mโ[0m === RUN TestApplyOverlayPages_EmptyInput pdf 2026-05-12T14:36:10.032842745Z [34mโ[0m --- PASS: TestApplyOverlayPages_EmptyInput (0.00s) pdf 2026-05-12T14:36:10.032844493Z [34mโ[0m === RUN TestApplyOverlayPages_EmptyOverlay pdf 2026-05-12T14:36:10.032846035Z [34mโ[0m --- PASS: TestApplyOverlayPages_EmptyOverlay (0.00s) pdf 2026-05-12T14:36:10.032847590Z [34mโ[0m === RUN TestApplyOverlayPages_GarbageOverlay pdf 2026-05-12T14:36:10.032849284Z [34mโ[0m --- PASS: TestApplyOverlayPages_GarbageOverlay (0.00s) pdf 2026-05-12T14:36:10.032850935Z [34mโ[0m === RUN TestApplyOverlayPages_PDF14WithStructElementDictE pdf 2026-05-12T14:36:10.032852622Z [34mโ[0m --- PASS: TestApplyOverlayPages_PDF14WithStructElementDictE (0.03s) pdf 2026-05-12T14:36:10.032854140Z [34mโ[0m === RUN TestPageDimensions_ReturnsPerPageSizes pdf 2026-05-12T14:36:10.032855706Z [34mโ[0m --- PASS: TestPageDimensions_ReturnsPerPageSizes (0.00s) pdf 2026-05-12T14:36:10.032857435Z [34mโ[0m === RUN TestPageDimensions_GarbageInput pdf 2026-05-12T14:36:10.032858972Z [34mโ[0m --- PASS: TestPageDimensions_GarbageInput (0.00s) pdf 2026-05-12T14:36:10.032860548Z [34mโ[0m === RUN TestPageDimensions_PDF14WithStructElementDictE pdf 2026-05-12T14:36:10.032862044Z [34mโ[0m --- PASS: TestPageDimensions_PDF14WithStructElementDictE (0.01s) pdf 2026-05-12T14:36:10.032863643Z [34mโ[0m === RUN TestPageDimensions_EmptyBytes pdf 2026-05-12T14:36:10.032865179Z [34mโ[0m --- PASS: TestPageDimensions_EmptyBytes (0.00s) pdf 2026-05-12T14:36:10.032866740Z [34mโ[0m === RUN TestPageDimensions_HeaderOnly pdf 2026-05-12T14:36:10.032868286Z [34mโ[0m --- PASS: TestPageDimensions_HeaderOnly (0.00s) pdf 2026-05-12T14:36:10.032869815Z [34mโ[0m === RUN TestPageDimensions_MixedDims pdf 2026-05-12T14:36:10.032957533Z [34mโ[0m --- PASS: TestPageDimensions_MixedDims (0.00s) pdf 2026-05-12T14:36:10.032960344Z [34mโ[0m === RUN TestPageDimensionsFile_RoundTrip pdf 2026-05-12T14:36:10.032962525Z [34mโ[0m --- PASS: TestPageDimensionsFile_RoundTrip (0.00s) pdf 2026-05-12T14:36:10.032964225Z [34mโ[0m === RUN TestPageDimensionsFile_MissingFile pdf 2026-05-12T14:36:10.032965922Z [34mโ[0m --- PASS: TestPageDimensionsFile_MissingFile (0.00s) pdf 2026-05-12T14:36:10.032967495Z [34mโ[0m === RUN TestGroupPagesByDim_AllSameSize pdf 2026-05-12T14:36:10.032969081Z [34mโ[0m --- PASS: TestGroupPagesByDim_AllSameSize (0.00s) pdf 2026-05-12T14:36:10.032970754Z [34mโ[0m === RUN TestGroupPagesByDim_MixedSizes pdf 2026-05-12T14:36:10.033070135Z [34mโ[0m --- PASS: TestGroupPagesByDim_MixedSizes (0.00s) pdf 2026-05-12T14:36:10.033072740Z [34mโ[0m === RUN TestGroupPagesByDim_Tolerance pdf 2026-05-12T14:36:10.033074489Z [34mโ[0m --- PASS: TestGroupPagesByDim_Tolerance (0.00s) pdf 2026-05-12T14:36:10.033076262Z [34mโ[0m === RUN TestGroupPagesByDim_NegativeToleranceFallsBackToDefault pdf 2026-05-12T14:36:10.033078238Z [34mโ[0m --- PASS: TestGroupPagesByDim_NegativeToleranceFallsBackToDefault (0.00s) pdf 2026-05-12T14:36:10.033080247Z [34mโ[0m === RUN TestBuildPageSelection pdf 2026-05-12T14:36:10.033081907Z [34mโ[0m --- PASS: TestBuildPageSelection (0.00s) pdf 2026-05-12T14:36:10.033083895Z [34mโ[0m === RUN TestEnsureReadable_ValidPDF pdf 2026-05-12T14:36:10.033085662Z [34mโ[0m --- PASS: TestEnsureReadable_ValidPDF (0.01s) pdf 2026-05-12T14:36:10.033087562Z [34mโ[0m === RUN TestEnsureReadable_Garbage pdf 2026-05-12T14:36:10.033089325Z [34mโ[0m --- PASS: TestEnsureReadable_Garbage (0.00s) pdf 2026-05-12T14:36:10.033091120Z [34mโ[0m === RUN TestMergePDFs_Concatenates pdf 2026-05-12T14:36:10.033093049Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] NewProcessor: created temp directory: /tmp/pdf_watermark_4216651753 pdf 2026-05-12T14:36:10.033094841Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: starting, 2 PDFs to merge pdf 2026-05-12T14:36:10.033099434Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: read PDF 0, pages: 2 pdf 2026-05-12T14:36:10.033101199Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: read PDF 1, pages: 1 pdf 2026-05-12T14:36:10.033102999Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: merged PDF 1, dest pages: 3 pdf 2026-05-12T14:36:10.033104703Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: completed, output size: 9065 bytes pdf 2026-05-12T14:36:10.033106404Z [34mโ[0m --- PASS: TestMergePDFs_Concatenates (0.01s) pdf 2026-05-12T14:36:10.033108374Z [34mโ[0m === RUN TestMergePDFs_SinglePDF_PassThrough pdf 2026-05-12T14:36:10.033110037Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] NewProcessor: created temp directory: /tmp/pdf_watermark_4294797532 pdf 2026-05-12T14:36:10.033111805Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: starting, 1 PDFs to merge pdf 2026-05-12T14:36:10.033113430Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: only 1 PDF, returning as-is pdf 2026-05-12T14:36:10.033115073Z [34mโ[0m --- PASS: TestMergePDFs_SinglePDF_PassThrough (0.00s) pdf 2026-05-12T14:36:10.033116790Z [34mโ[0m === RUN TestMergePDFs_RejectsEmpty pdf 2026-05-12T14:36:10.033118407Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] NewProcessor: created temp directory: /tmp/pdf_watermark_4094201731 pdf 2026-05-12T14:36:10.033233214Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] MergePDFs: starting, 0 PDFs to merge pdf 2026-05-12T14:36:10.033237229Z [34mโ[0m 2026/05/12 21:36:05 [ERROR] MergePDFs: no PDFs to merge pdf 2026-05-12T14:36:10.033239180Z [34mโ[0m --- PASS: TestMergePDFs_RejectsEmpty (0.00s) pdf 2026-05-12T14:36:10.033241018Z [34mโ[0m PASS pdf 2026-05-12T14:36:10.033242776Z [34mโ[0m ok github.com/s0ngkran/pdf_watermark_process/internal/pdf 0.335s pdf 2026-05-12T14:36:10.033244412Z [34mโ[0m === RUN TestNewLayeredStampService_WiresConfig pdf 2026-05-12T14:36:10.033246294Z [34mโ[0m --- PASS: TestNewLayeredStampService_WiresConfig (0.00s) pdf 2026-05-12T14:36:10.033248000Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_EmptyInput pdf 2026-05-12T14:36:10.033249824Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_EmptyInput (0.00s) pdf 2026-05-12T14:36:10.033251454Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_GarbageInput pdf 2026-05-12T14:36:10.033255190Z [34mโ[0m 2026/05/12 21:36:04 [LayeredStamp] OCG hide failed (passthrough): ocg: read context: ReadContext failed: Read: xRefTable failed: pdfcpu: can't find last xref section pdf 2026-05-12T14:36:10.033257010Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_GarbageInput (0.00s) pdf 2026-05-12T14:36:10.033258556Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_HappyPath pdf 2026-05-12T14:36:10.033260446Z [34mโ[0m 2026/05/12 21:36:04 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.033262185Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_HappyPath (0.03s) pdf 2026-05-12T14:36:10.033264002Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_NoFlattening_OutputSearchable pdf 2026-05-12T14:36:10.033265649Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.033267312Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_NoFlattening_OutputSearchable (0.02s) pdf 2026-05-12T14:36:10.033268979Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_MixedPageSizes pdf 2026-05-12T14:36:10.033270652Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.033272282Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_MixedPageSizes (0.02s) pdf 2026-05-12T14:36:10.033273935Z [34mโ[0m === RUN TestProcessOptions_WithPdfName pdf 2026-05-12T14:36:10.033278099Z [34mโ[0m --- PASS: TestProcessOptions_WithPdfName (0.00s) pdf 2026-05-12T14:36:10.033279705Z [34mโ[0m === RUN TestProcessOptions_WithLastUpdated pdf 2026-05-12T14:36:10.033281297Z [34mโ[0m --- PASS: TestProcessOptions_WithLastUpdated (0.00s) pdf 2026-05-12T14:36:10.033282895Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_AppliesOptions pdf 2026-05-12T14:36:10.033284601Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.033286214Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_AppliesOptions (0.02s) pdf 2026-05-12T14:36:10.033287805Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_RespectsContextCancel pdf 2026-05-12T14:36:10.033289405Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_RespectsContextCancel (0.01s) pdf 2026-05-12T14:36:10.033291099Z [34mโ[0m === RUN TestLayeredStampService_ProcessPDF_DeadlineTightenedIsSafe pdf 2026-05-12T14:36:10.033292745Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.033294405Z [34mโ[0m 2026/05/12 21:36:05 [DEBUG] HideWatermarkOCG: no OCG matched "Watermark", passthrough pdf 2026-05-12T14:36:10.033295940Z [34mโ[0m --- PASS: TestLayeredStampService_ProcessPDF_DeadlineTightenedIsSafe (0.02s) pdf 2026-05-12T14:36:10.033297799Z [34mโ[0m === RUN TestCalculateWorkerCount pdf 2026-05-12T14:36:10.033299447Z [34mโ[0m === RUN TestCalculateWorkerCount/zero_ratio_returns_at_least_1 pdf 2026-05-12T14:36:10.033301130Z [34mโ[0m === RUN TestCalculateWorkerCount/negative_ratio_returns_at_least_1 pdf 2026-05-12T14:36:10.033302730Z [34mโ[0m === RUN TestCalculateWorkerCount/positive_ratio_returns_at_least_1 pdf 2026-05-12T14:36:10.033306190Z [34mโ[0m === RUN TestCalculateWorkerCount/full_ratio_returns_at_least_1 pdf 2026-05-12T14:36:10.033307926Z [34mโ[0m --- PASS: TestCalculateWorkerCount (0.00s) pdf 2026-05-12T14:36:10.033309552Z [34mโ[0m --- PASS: TestCalculateWorkerCount/zero_ratio_returns_at_least_1 (0.00s) pdf 2026-05-12T14:36:10.033311188Z [34mโ[0m --- PASS: TestCalculateWorkerCount/negative_ratio_returns_at_least_1 (0.00s) pdf 2026-05-12T14:36:10.033312839Z [34mโ[0m --- PASS: TestCalculateWorkerCount/positive_ratio_returns_at_least_1 (0.00s) pdf 2026-05-12T14:36:10.033314341Z [34mโ[0m --- PASS: TestCalculateWorkerCount/full_ratio_returns_at_least_1 (0.00s) pdf 2026-05-12T14:36:10.033315888Z [34mโ[0m === RUN TestCalculatePageRanges pdf 2026-05-12T14:36:10.033317436Z [34mโ[0m === RUN TestCalculatePageRanges/10_pages,_2_workers pdf 2026-05-12T14:36:10.033319253Z [34mโ[0m === RUN TestCalculatePageRanges/10_pages,_3_workers_(uneven_split) pdf 2026-05-12T14:36:10.033348331Z [34mโ[0m === RUN TestCalculatePageRanges/1_page,_4_workers_(more_workers_than_pages) pdf 2026-05-12T14:36:10.033351461Z [34mโ[0m === RUN TestCalculatePageRanges/5_pages,_1_worker pdf 2026-05-12T14:36:10.033353363Z [34mโ[0m === RUN TestCalculatePageRanges/zero_workers_defaults_to_1 pdf 2026-05-12T14:36:10.033355218Z [34mโ[0m --- PASS: TestCalculatePageRanges (0.00s) pdf 2026-05-12T14:36:10.033356936Z [34mโ[0m --- PASS: TestCalculatePageRanges/10_pages,_2_workers (0.00s) pdf 2026-05-12T14:36:10.033358564Z [34mโ[0m --- PASS: TestCalculatePageRanges/10_pages,_3_workers_(uneven_split) (0.00s) pdf 2026-05-12T14:36:10.033360408Z [34mโ[0m --- PASS: TestCalculatePageRanges/1_page,_4_workers_(more_workers_than_pages) (0.00s) pdf 2026-05-12T14:36:10.033362068Z [34mโ[0m --- PASS: TestCalculatePageRanges/5_pages,_1_worker (0.00s) pdf 2026-05-12T14:36:10.033363693Z [34mโ[0m --- PASS: TestCalculatePageRanges/zero_workers_defaults_to_1 (0.00s) pdf 2026-05-12T14:36:10.033365429Z [34mโ[0m === RUN TestCalculatePageRanges_Contiguous pdf 2026-05-12T14:36:10.033369628Z [34mโ[0m --- PASS: TestCalculatePageRanges_Contiguous (0.00s) pdf 2026-05-12T14:36:10.033371299Z [34mโ[0m === RUN TestCalculateMemoryAwareWorkerCount_NilMonitor pdf 2026-05-12T14:36:10.033372926Z [34mโ[0m --- PASS: TestCalculateMemoryAwareWorkerCount_NilMonitor (0.00s) pdf 2026-05-12T14:36:10.033374542Z [34mโ[0m === RUN TestCalculateMemoryAwareWorkerCount_ZeroThreshold pdf 2026-05-12T14:36:10.033376338Z [34mโ[0m --- PASS: TestCalculateMemoryAwareWorkerCount_ZeroThreshold (0.00s) pdf 2026-05-12T14:36:10.033378155Z [34mโ[0m PASS pdf 2026-05-12T14:36:10.033379855Z [34mโ[0m ok github.com/s0ngkran/pdf_watermark_process/internal/service 0.121s pdf 2026-05-12T14:36:10.237810984Z [34mโ[0m net pdf 2026-05-12T14:36:10.728898462Z [34mโ[0m vendor/golang.org/x/net/http/httpproxy pdf 2026-05-12T14:36:10.728927826Z [34mโ[0m github.com/valyala/tcplisten pdf 2026-05-12T14:36:10.728931058Z [34mโ[0m github.com/valyala/fasthttp/fasthttputil pdf 2026-05-12T14:36:10.728933381Z [34mโ[0m github.com/google/uuid pdf 2026-05-12T14:36:10.728936049Z [34mโ[0m net/textproto pdf 2026-05-12T14:36:10.729237285Z [34mโ[0m github.com/mitchellh/mapstructure pdf 2026-05-12T14:36:10.729255100Z [34mโ[0m crypto/x509 pdf 2026-05-12T14:36:10.730479820Z [34mโ[0m github.com/spf13/pflag pdf 2026-05-12T14:36:10.772981441Z [34mโ[0m github.com/valyala/fasthttp/reuseport pdf 2026-05-12T14:36:10.795381108Z [34mโ[0m vendor/golang.org/x/net/http/httpguts pdf 2026-05-12T14:36:10.796730297Z [34mโ[0m mime/multipart pdf 2026-05-12T14:36:10.827637824Z [34mโ[0m github.com/gofiber/fiber/v2/utils pdf 2026-05-12T14:36:11.168304542Z [34mโ[0m crypto/tls pdf 2026-05-12T14:36:11.810479770Z [34mโ[0m net/http/httptrace pdf 2026-05-12T14:36:11.841520220Z [34mโ[0m net/http/internal/httpcommon pdf 2026-05-12T14:36:11.889196958Z [34mโ[0m net/http pdf 2026-05-12T14:36:13.003130470Z [34mโ[0m net/http/httputil pdf 2026-05-12T14:36:13.003390469Z [34mโ[0m github.com/spf13/afero pdf 2026-05-12T14:36:13.004386681Z [34mโ[0m github.com/magiconair/properties pdf 2026-05-12T14:36:13.004657458Z [34mโ[0m github.com/pdfcpu/pdfcpu/pkg/pdfcpu/primitives pdf 2026-05-12T14:36:13.012871306Z [34mโ[0m github.com/andybalholm/brotli pdf 2026-05-12T14:36:13.171837974Z [34mโ[0m github.com/spf13/viper/internal/encoding/javaproperties pdf 2026-05-12T14:36:13.233062694Z [34mโ[0m github.com/spf13/viper pdf 2026-05-12T14:36:13.426917294Z [34mโ[0m github.com/s0ngkran/pdf_watermark_process/internal/config pdf 2026-05-12T14:36:13.516495606Z [34mโ[0m github.com/pdfcpu/pdfcpu/pkg/pdfcpu/create pdf 2026-05-12T14:36:13.516699728Z [34mโ[0m github.com/pdfcpu/pdfcpu/pkg/pdfcpu/form pdf 2026-05-12T14:36:13.518114710Z [34mโ[0m github.com/pdfcpu/pdfcpu/pkg/pdfcpu pdf 2026-05-12T14:36:14.417305983Z [34mโ[0m github.com/valyala/fasthttp pdf 2026-05-12T14:36:14.517202559Z [34mโ[0m github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate pdf 2026-05-12T14:36:15.097631978Z [34mโ[0m github.com/pdfcpu/pdfcpu/pkg/api pdf 2026-05-12T14:36:15.286231543Z [34mโ[0m github.com/gofiber/fiber/v2 pdf 2026-05-12T14:36:15.399855066Z [34mโ[0m github.com/s0ngkran/pdf_watermark_process/internal/pdf pdf 2026-05-12T14:36:15.499476170Z [34mโ[0m github.com/s0ngkran/pdf_watermark_process/internal/service pdf 2026-05-12T14:36:15.724313169Z [34mโ[0m github.com/gofiber/fiber/v2/middleware/cors pdf 2026-05-12T14:36:15.724838909Z [34mโ[0m github.com/gofiber/fiber/v2/middleware/recover pdf 2026-05-12T14:36:15.725189112Z [34mโ[0m github.com/s0ngkran/pdf_watermark_process/internal/middleware pdf 2026-05-12T14:36:15.725197242Z [34mโ[0m github.com/s0ngkran/pdf_watermark_process/internal/handler pdf 2026-05-12T14:36:15.725222599Z [34mโ[0m github.com/gofiber/fiber/v2/middleware/logger pdf 2026-05-12T14:36:15.878660114Z [34mโ[0m github.com/s0ngkran/pdf_watermark_process/cmd/server pdf 2026-05-12T14:36:16.970509972Z [34mโ[0m [36mINFO[0m[0098] Taking snapshot of files... pdf 2026-05-12T14:36:20.829821216Z [34mโ[0m [36mINFO[0m[0102] Pushing layer <registry-uri-4> to cache now pdf 2026-05-12T14:36:20.831411264Z [34mโ[0m [36mINFO[0m[0102] Pushing image to <registry-uri-5> pdf 2026-05-12T14:36:24.850542469Z [34mโ[0m [36mINFO[0m[0106] Pushed <registry-uri-6> pdf 2026-05-12T14:36:24.851464471Z [34mโ[0m [36mINFO[0m[0106] Saving file app/dist/server for later use pdf 2026-05-12T14:36:24.864372643Z [34mโ[0m [36mINFO[0m[0106] Deleting filesystem... pdf 2026-05-12T14:36:25.787232356Z [34mโ[0m [36mINFO[0m[0107] Retrieving image manifest debian:bookworm-slim pdf 2026-05-12T14:36:25.787258689Z [34mโ[0m [36mINFO[0m[0107] Returning cached image manifest pdf 2026-05-12T14:36:25.787260850Z [34mโ[0m [36mINFO[0m[0107] Retrieving image manifest debian:bookworm-slim pdf 2026-05-12T14:36:25.787262791Z [34mโ[0m [36mINFO[0m[0107] Returning cached image manifest pdf 2026-05-12T14:36:25.787264680Z [34mโ[0m [36mINFO[0m[0107] Executing 0 build triggers pdf 2026-05-12T14:36:25.787269653Z [34mโ[0m [36mINFO[0m[0107] Building stage 'debian:bookworm-slim' [idx: '1', base-idx: '-1'] pdf 2026-05-12T14:36:25.787271744Z [34mโ[0m [36mINFO[0m[0107] Applying label maintainer=Chatchanan Panyaprasirtkit <changnoi2547@gmail.com> pdf 2026-05-12T14:36:25.787844448Z [34mโ[0m [36mINFO[0m[0107] Checking for cached layer <registry-uri-7> pdf 2026-05-12T14:36:25.904517753Z [34mโ[0m [36mINFO[0m[0107] Using caching version of cmd: RUN apt-get update && apt-get install -y --no-install-recommends tini ca-certificates && apt-get clean && rm -rf /var/lib/apt/lists/* pdf 2026-05-12T14:36:25.904542489Z [34mโ[0m [36mINFO[0m[0107] Checking for cached layer <registry-uri-8> pdf 2026-05-12T14:36:26.009308687Z [34mโ[0m [36mINFO[0m[0107] Using caching version of cmd: RUN useradd -u 1000 -m -s /bin/bash appuser pdf 2026-05-12T14:36:26.039327118Z [34mโ[0m [36mINFO[0m[0107] Checking for cached layer <registry-uri-9> pdf 2026-05-12T14:36:26.070279399Z [34mโ[0m [36mINFO[0m[0107] No cached layer found for cmd RUN mkdir -p /app/.pdfcpu pdf 2026-05-12T14:36:26.070329166Z [34mโ[0m [36mINFO[0m[0107] Cmd: USER pdf 2026-05-12T14:36:26.070332132Z [34mโ[0m [36mINFO[0m[0107] Cmd: EXPOSE pdf 2026-05-12T14:36:26.070335105Z [34mโ[0m [36mINFO[0m[0107] Adding exposed port: 8080/tcp pdf 2026-05-12T14:36:26.070337803Z [34mโ[0m [36mINFO[0m[0107] Adding exposed port: 8443/tcp pdf 2026-05-12T14:36:26.070340987Z [34mโ[0m [36mINFO[0m[0107] Unpacking rootfs as cmd COPY --from=builder /app/dist/server /app/server requires it. pdf 2026-05-12T14:36:26.841882211Z [34mโ[0m [36mINFO[0m[0108] Initializing snapshotter ... pdf 2026-05-12T14:36:26.841910121Z [34mโ[0m [36mINFO[0m[0108] Taking snapshot of full filesystem... pdf 2026-05-12T14:36:27.617609317Z [34mโ[0m [36mINFO[0m[0109] LABEL maintainer="Chatchanan Panyaprasirtkit <changnoi2547@gmail.com>" pdf 2026-05-12T14:36:27.617634888Z [34mโ[0m [36mINFO[0m[0109] Applying label maintainer=Chatchanan Panyaprasirtkit <changnoi2547@gmail.com> pdf 2026-05-12T14:36:27.618326926Z [34mโ[0m [36mINFO[0m[0109] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:27.618347113Z [34mโ[0m [36mINFO[0m[0109] ARG timezone=Asia/Bangkok pdf 2026-05-12T14:36:27.618349706Z [34mโ[0m [36mINFO[0m[0109] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:27.618371958Z [34mโ[0m [36mINFO[0m[0109] ENV LANG C.UTF-8 pdf 2026-05-12T14:36:27.618373756Z [34mโ[0m [36mINFO[0m[0109] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:27.618375323Z [34mโ[0m [36mINFO[0m[0109] ENV LC_ALL C.UTF-8 pdf 2026-05-12T14:36:27.618376967Z [34mโ[0m [36mINFO[0m[0109] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:27.618378724Z [34mโ[0m [36mINFO[0m[0109] ENV TZ $timezone pdf 2026-05-12T14:36:27.618589977Z [34mโ[0m [36mINFO[0m[0109] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:27.618605757Z [34mโ[0m [36mINFO[0m[0109] RUN apt-get update && apt-get install -y --no-install-recommends tini ca-certificates && apt-get clean && rm -rf /var/lib/apt/lists/* pdf 2026-05-12T14:36:27.618608465Z [34mโ[0m [36mINFO[0m[0109] Found cached layer, extracting to filesystem pdf 2026-05-12T14:36:28.319411115Z [34mโ[0m [36mINFO[0m[0110] RUN useradd -u 1000 -m -s /bin/bash appuser pdf 2026-05-12T14:36:28.319467027Z [34mโ[0m [36mINFO[0m[0110] Found cached layer, extracting to filesystem pdf 2026-05-12T14:36:28.458010160Z [34mโ[0m [36mINFO[0m[0110] WORKDIR /app pdf 2026-05-12T14:36:28.458039396Z [34mโ[0m [36mINFO[0m[0110] Cmd: workdir pdf 2026-05-12T14:36:28.458042131Z [34mโ[0m [36mINFO[0m[0110] Changed working directory to /app pdf 2026-05-12T14:36:28.458044614Z [34mโ[0m [36mINFO[0m[0110] Creating directory /app with uid -1 and gid -1 pdf 2026-05-12T14:36:28.458058048Z [34mโ[0m [36mINFO[0m[0110] Taking snapshot of files... pdf 2026-05-12T14:36:28.489195864Z [34mโ[0m [36mINFO[0m[0110] COPY --from=builder /app/dist/server /app/server pdf 2026-05-12T14:36:28.500072444Z [34mโ[0m [36mINFO[0m[0110] Taking snapshot of files... pdf 2026-05-12T14:36:28.780721656Z [34mโ[0m [36mINFO[0m[0110] RUN mkdir -p /app/.pdfcpu pdf 2026-05-12T14:36:28.835479946Z [34mโ[0m [36mINFO[0m[0110] Cmd: /bin/sh pdf 2026-05-12T14:36:28.835502571Z [34mโ[0m [36mINFO[0m[0110] Args: [-c mkdir -p /app/.pdfcpu] pdf 2026-05-12T14:36:28.835504766Z [34mโ[0m [36mINFO[0m[0110] Running: [/bin/sh -c mkdir -p /app/.pdfcpu] pdf 2026-05-12T14:36:28.885990769Z [34mโ[0m [36mINFO[0m[0110] Taking snapshot of files... pdf 2026-05-12T14:36:28.894670559Z [34mโ[0m [36mINFO[0m[0110] Pushing layer <registry-uri-10> to cache now pdf 2026-05-12T14:36:28.895062854Z [34mโ[0m [36mINFO[0m[0110] Pushing image to <registry-uri-11> pdf 2026-05-12T14:36:28.895394253Z [34mโ[0m [36mINFO[0m[0110] RUN chown -R appuser:nogroup /app pdf 2026-05-12T14:36:28.943117145Z [34mโ[0m [36mINFO[0m[0110] Cmd: /bin/sh pdf 2026-05-12T14:36:28.943386652Z [34mโ[0m [36mINFO[0m[0110] Args: [-c chown -R appuser:nogroup /app] pdf 2026-05-12T14:36:28.943826065Z [34mโ[0m [36mINFO[0m[0110] Running: [/bin/sh -c chown -R appuser:nogroup /app] pdf 2026-05-12T14:36:28.996133518Z [34mโ[0m [36mINFO[0m[0110] Taking snapshot of files... pdf 2026-05-12T14:36:29.293337902Z [34mโ[0m [36mINFO[0m[0110] Pushing layer <registry-uri-12> to cache now pdf 2026-05-12T14:36:29.293363214Z [34mโ[0m [36mINFO[0m[0110] Pushing image to <registry-uri-13> pdf 2026-05-12T14:36:29.306760398Z [34mโ[0m [36mINFO[0m[0111] USER appuser pdf 2026-05-12T14:36:29.306783338Z [34mโ[0m [36mINFO[0m[0111] Cmd: USER pdf 2026-05-12T14:36:29.307952655Z [34mโ[0m [36mINFO[0m[0111] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:29.307959032Z [34mโ[0m [36mINFO[0m[0111] ENV PDFCPU_CONF_DIR=/app/.pdfcpu pdf 2026-05-12T14:36:29.307961078Z [34mโ[0m [36mINFO[0m[0111] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:29.307962853Z [34mโ[0m [36mINFO[0m[0111] EXPOSE 8080 8443 pdf 2026-05-12T14:36:29.307964912Z [34mโ[0m [36mINFO[0m[0111] Cmd: EXPOSE pdf 2026-05-12T14:36:29.307966572Z [34mโ[0m [36mINFO[0m[0111] Adding exposed port: 8080/tcp pdf 2026-05-12T14:36:29.307968192Z [34mโ[0m [36mINFO[0m[0111] Adding exposed port: 8443/tcp pdf 2026-05-12T14:36:29.308216159Z [34mโ[0m [36mINFO[0m[0111] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:29.308219521Z [34mโ[0m [36mINFO[0m[0111] ENTRYPOINT ["tini", "--", "/app/server"] pdf 2026-05-12T14:36:29.308222597Z [34mโ[0m [36mINFO[0m[0111] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:29.308224423Z [34mโ[0m [36mINFO[0m[0111] CMD ["--env=prd"] pdf 2026-05-12T14:36:29.308226236Z [34mโ[0m [36mINFO[0m[0111] No files changed in this command, skipping snapshotting. pdf 2026-05-12T14:36:29.563572936Z [34mโ[0m [36mINFO[0m[0111] Pushed <registry-uri-14> pdf 2026-05-12T14:36:30.290903264Z [34mโ[0m [36mINFO[0m[0111] Pushed <registry-uri-15> pdf 2026-05-12T14:36:30.291416187Z [34mโ[0m [36mINFO[0m[0111] Pushing image to <image-16> pdf 2026-05-12T14:36:31.389936427Z [34mโ[0m [36mINFO[0m[0113] Pushed <registry-uri-17> pdf 2026-05-12T14:36:31.425621531Z [34mโ[0m pdf 2026-05-12T14:36:31.561515261Z [34mโ[0m [32m โ built and uploaded app container image to DOCR[0m pdf 2026-05-12T14:36:31.563480198Z [34mโฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผ[0m pdf 2026-05-12T14:36:31.563487000Z pdf 2026-05-12T14:36:31.569729708Z [32m โ [0m[30m[42m build complete [0m[0m pdf 2026-05-12T14:36:31.569745709Z