2026-06-09 05:46.59: New job: test ahrefs/monorobot https://github.com/ahrefs/monorobot.git#refs/heads/louis/a/monorobot-slack-destination-log (c3801f1e59304b2be7485a22f8c5dd514c472637) (linux-x86_64:(lint-fmt))Base: ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440cocamlformat version: version 0.26.2 (from opam)To reproduce locally:git clone --recursive "https://github.com/ahrefs/monorobot.git" -b "louis/a/monorobot-slack-destination-log" && cd "monorobot" && git reset --hard c3801f1ecat > Dockerfile <<'END-OF-DOCKERFILE'FROM ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440cUSER 1000:1000RUN cd ~/opam-repository && (git cat-file -e c180e1630960e0dbb8e30c22b3de89113eb5cc93 || git fetch origin master) && git reset -q --hard c180e1630960e0dbb8e30c22b3de89113eb5cc93 && git log --no-decorate -n1 --oneline && opam update -uRUN opam depext -i duneWORKDIR /srcRUN opam depext -i ocamlformat=0.26.2COPY --chown=1000:1000 . /src/RUN opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)END-OF-DOCKERFILEdocker build .END-REPRO-BLOCK2026-06-09 05:46.59: Using cache hint "ahrefs/monorobot-ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c-debian-13-4.11_opam-2.5-ocamlformat-c180e1630960e0dbb8e30c22b3de89113eb5cc93"2026-06-09 05:46.59: Using OBuilder spec:((from ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c)(user (uid 1000) (gid 1000))(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "cd ~/opam-repository && (git cat-file -e c180e1630960e0dbb8e30c22b3de89113eb5cc93 || git fetch origin master) && git reset -q --hard c180e1630960e0dbb8e30c22b3de89113eb5cc93 && git log --no-decorate -n1 --oneline && opam update -u"))(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i dune"))(workdir /src)(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i ocamlformat=0.26.2"))(copy (src .) (dst /src/))(run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")))2026-06-09 05:46.59: Waiting for resource in pool OCluster2026-06-09 05:46.59: Waiting for worker…2026-06-09 05:47.00: Got resource from pool OClusterBuilding on toxis.caelum.ci.devAll commits already cachedHEAD is now at c3801f1 Show readable Slack destinations in monorobot logs(from ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c)2026-06-09 05:47.33 ---> saved as "36abb6db1723167d15c41f53ef05d371444812dc64e2ea7fe109d222db988473"/: (user (uid 1000) (gid 1000))/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "cd ~/opam-repository && (git cat-file -e c180e1630960e0dbb8e30c22b3de89113eb5cc93 || git fetch origin master) && git reset -q --hard c180e1630960e0dbb8e30c22b3de89113eb5cc93 && git log --no-decorate -n1 --oneline && opam update -u"))From https://github.com/ocaml/opam-repository* branch master -> FETCH_HEADfc08333d1b..b860455781 master -> origin/masterc180e16309 Merge pull request #29907 from dra27/host-arch-fixes<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>[default] synchronised from git+file:///home/opam/opam-repositoryEverything as up-to-date as possible (run with --verbose to show unavailable upgrades).The following packages are not being upgraded because the new versions conflict with other installed packages:- ocaml.5.6.0- ocaml-config.3However, you may "opam upgrade" these packages explicitly, which will ask permission to downgrade or uninstall the conflicting packages.Nothing to do.# Run eval $(opam env) to update the current shell environment2026-06-09 05:48.01 ---> saved as "151fdd6a6f64615c4d74766ca524c50c72359e7e763f0f681d3ae0c782b00efb"/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i dune"))Since version 2.1, opam now handles external dependencies alongside OCaml ones, and the `depext` plugin interface is provided for backwards compatibility only. Consider using your usual `opam install` command to install both OCaml and system dependencies, or `opam install <pkg> --depext-only` if you want to only install external dependencies.# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian# No extra OS packages requirements found.The following actions will be performed:- install ocaml-secondary-compiler 4.14.2 [required by dune]- install ocamlfind 1.9.6 [required by ocamlfind-secondary]- install ocamlfind-secondary 1.9.6 [required by dune]- install dune 3.23.1===== 4 to install =====<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>-> retrieved ocamlfind.1.9.6 (cached)-> retrieved dune.3.23.1 (cached)-> retrieved ocamlfind-secondary.1.9.6 (cached)-> retrieved ocaml-secondary-compiler.4.14.2 (https://opam.ocaml.org/cache)-> installed ocamlfind.1.9.6-> installed ocaml-secondary-compiler.4.14.2-> installed ocamlfind-secondary.1.9.6-> installed dune.3.23.1Done.# Run eval $(opam env) to update the current shell environment2026-06-09 05:50.06 ---> saved as "1c2b3695a14dc2896f8d80c5233e16c59be173f851024cd70e313d708a8a6bea"/: (workdir /src)/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i ocamlformat=0.26.2"))Since version 2.1, opam now handles external dependencies alongside OCaml ones, and the `depext` plugin interface is provided for backwards compatibility only. Consider using your usual `opam install` command to install both OCaml and system dependencies, or `opam install <pkg> --depext-only` if you want to only install external dependencies.# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian# No extra OS packages requirements found.The following actions will be performed:- install cmdliner 1.3.0 [required by ocamlformat]- install ocamlbuild 0.16.1 [required by fpath, astring, uuseg]- install either 1.0.0 [required by ocamlformat-lib]- install menhirLib 20260209 [required by ocamlformat-lib]- install dune-build-info 3.23.1 [required by ocamlformat-lib]- install csexp 1.5.2 [required by ocamlformat-lib]- install menhirSdk 20260209 [required by ocamlformat-lib]- install menhirGLR 20260209 [required by menhir]- install result 1.5 [required by ocamlformat-lib]- install camlp-streams 5.0.1 [required by ocamlformat-lib]- install seq base [required by re]- install ocaml-version 4.1.1 [required by ocamlformat-lib]- install fix 20250919 [required by ocamlformat-lib]- install sexplib0 v0.15.1 [required by base]- install menhirCST 20260209 [required by menhir]- install ocp-indent 1.9.0 [required by ocamlformat-lib]- install topkg 1.1.1 [required by fpath, astring, uuseg]- install dune-configurator 3.22.2 [required by base]- install re 1.11.0 [required by ocamlformat]- install menhir 20260209 [required by ocamlformat-lib]- install uutf 1.0.4 [required by ocamlformat-lib]- install astring 0.8.5 [required by ocamlformat-lib]- install base v0.15.2 [required by ocamlformat-lib]- install uucp 15.0.0 [required by uuseg]- install fpath 0.7.3 [required by ocamlformat-lib]- install stdio v0.15.0 [required by ocamlformat-lib]- install uuseg 15.0.0 [required by ocamlformat-lib]- install ocamlformat-lib 0.26.2 [required by ocamlformat]- install ocamlformat 0.26.2===== 29 to install =====<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>-> retrieved astring.0.8.5 (cached)-> retrieved camlp-streams.5.0.1 (cached)-> retrieved base.v0.15.2 (cached)-> retrieved cmdliner.1.3.0 (cached)-> retrieved csexp.1.5.2 (cached)-> retrieved either.1.0.0 (cached)-> installed camlp-streams.5.0.1-> retrieved fix.20250919 (https://opam.ocaml.org/cache)-> installed csexp.1.5.2-> retrieved fpath.0.7.3 (cached)-> installed either.1.0.0-> retrieved menhir.20260209 (cached)-> retrieved menhirCST.20260209 (cached)-> retrieved menhirGLR.20260209 (cached)-> retrieved dune-build-info.3.23.1 (cached)-> retrieved dune-configurator.3.22.2 (https://opam.ocaml.org/cache)-> retrieved menhirLib.20260209 (cached)-> retrieved menhirSdk.20260209 (cached)-> retrieved ocaml-version.4.1.1 (cached)-> retrieved ocamlbuild.0.16.1 (cached)-> installed cmdliner.1.3.0-> installed dune-build-info.3.23.1-> installed dune-configurator.3.22.2-> installed fix.20250919-> installed menhirCST.20260209-> installed menhirGLR.20260209-> retrieved ocp-indent.1.9.0 (https://opam.ocaml.org/cache)-> installed menhirLib.20260209-> installed ocaml-version.4.1.1-> retrieved ocamlformat.0.26.2 (https://opam.ocaml.org/cache)-> installed menhirSdk.20260209-> retrieved re.1.11.0 (https://opam.ocaml.org/cache)-> retrieved seq.base (cached)-> installed seq.base-> retrieved result.1.5 (cached)-> retrieved sexplib0.v0.15.1 (cached)-> retrieved topkg.1.1.1 (cached)-> retrieved stdio.v0.15.0 (https://opam.ocaml.org/cache)-> retrieved uuseg.15.0.0 (https://opam.ocaml.org/cache)-> installed result.1.5-> retrieved uutf.1.0.4 (cached)-> retrieved uucp.15.0.0 (https://opam.ocaml.org/cache)-> installed sexplib0.v0.15.1-> retrieved ocamlformat-lib.0.26.2 (https://opam.ocaml.org/cache)-> installed re.1.11.0-> installed ocp-indent.1.9.0-> installed ocamlbuild.0.16.1-> installed base.v0.15.2-> installed stdio.v0.15.0-> installed menhir.20260209-> installed topkg.1.1.1-> installed uutf.1.0.4-> installed astring.0.8.5-> installed fpath.0.7.3-> installed uucp.15.0.0-> installed uuseg.15.0.0-> installed ocamlformat-lib.0.26.2-> installed ocamlformat.0.26.2Done.<><> ocp-indent.1.9.0 installed successfully ><><><><><><><><><><><><><><><><><>=> This package requires additional configuration for use in editors. Install package 'user-setup', or manually:* for Emacs, add these lines to ~/.emacs:(add-to-list 'load-path "/home/opam/.opam/4.11/share/emacs/site-lisp")(require 'ocp-indent)* for Vim, add this line to ~/.vimrc:set rtp^="/home/opam/.opam/4.11/share/ocp-indent/vim"# Run eval $(opam env) to update the current shell environment2026-06-09 05:51.12 ---> saved as "c926ea70c7fe1a582265727f01798a12e7c61185916ec327f1e21dce583583c4"/src: (copy (src .) (dst /src/))2026-06-09 05:51.13 ---> saved as "422ed1baa0f6c3bd3715407523d86e8b10c9f5a6a2961c60eeb0685f799e5116"/src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))File "lib/api_remote.ml", line 1, characters 0-0:diff --git a/_build/default/lib/api_remote.ml b/_build/default/lib/.formatted/api_remote.mlindex daf1ee2..1d8680a 100644--- a/_build/default/lib/api_remote.ml+++ b/_build/default/lib/.formatted/api_remote.ml@@ -187,17 +187,17 @@ module Slack : Api.Slack = structlet www_form_of_user_info_req ({ user; include_locale } : Slack_t.user_info_req) =Web.make_url_args- @@ List.filter_map id- [ Some ("user", Slack_user_id.project user); bool_field_val include_locale "include_locale" ]+ @@ List.filter_map id [ Some ("user", Slack_user_id.project user); bool_field_val include_locale "include_locale" ]let get_user ~(ctx : Context.t) ~(req : Slack_t.user_info_req) =let data = www_form_of_user_info_req req inlet api_path = sprintf "users.info?%s" data in- request_token_auth ~name:(sprintf "users.info (%s)" (Slack_user_id.project req.user)) ~ctx `GET api_path- Slack_j.read_user_info_res+ request_token_auth+ ~name:(sprintf "users.info (%s)" (Slack_user_id.project req.user))+ ~ctx `GET api_path Slack_j.read_user_info_reslet www_form_of_conversations_info_req- ({ channel; include_locale; include_num_members } : Slack_t.conversations_info_req) =+ ({ channel; include_locale; include_num_members } : Slack_t.conversations_info_req) =Web.make_url_args@@ List.filter_map id[@@ -269,9 +269,7 @@ module Slack : Api.Slack = structlet resolve_conversation_display_name ~ctx channel =let raw = Slack_channel.Ident.project channel in- let req =- ({ channel; include_locale = None; include_num_members = None } : Slack_t.conversations_info_req)- in+ let req = ({ channel; include_locale = None; include_num_members = None } : Slack_t.conversations_info_req) inmatch%lwt get_conversations_info ~ctx ~req with| Ok ({ channel = conversation } : Slack_t.conversations_info_res) -> conversation_display_name ~ctx conversation| Error e ->@@ -280,11 +278,11 @@ module Slack : Api.Slack = structlet slack_destination_kind raw =if String.equal raw "" then `Other- else+ else (match raw.[0] with| 'U' | 'W' -> `User (Slack_user_id.inject raw)| 'C' | 'G' | 'D' -> `Conversation (Slack_channel.Ident.inject raw)- | _ -> `Other+ | _ -> `Other)let format_resolved_destination ~raw display_name =match String.equal raw display_name with@@ -341,8 +339,7 @@ module Slack : Api.Slack = structlet limit_option = Option.map (fun l -> "limit", Int.to_string l) limit inlet url_args = Web.make_url_args @@ List.filter_map id [ cursor_option; limit_option ] inmatch%lwt- request_token_auth ~name:"list users" ~ctx `GET (sprintf "users.list?%s" url_args)- Slack_j.read_list_users_res+ request_token_auth ~name:"list users" ~ctx `GET (sprintf "users.list?%s" url_args) Slack_j.read_list_users_reswith| Ok ({ members } as res : Slack_t.list_users_res) ->List.iter cache_user_display members;dune build @fmt failed"/usr/bin/env" "bash" "-c" "opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)" failed with exit status 22026-06-09 05:51.13: Job failed: Failed: Build failed