In ob-tangle.el, the line
(defvar org-id-link-to-org-use-id nil) ; Dynamically scoped appears to override the user's customization of org-id-link-to-org-use-id. Specifically, this happens if the user has python in org-babel-do-load-languages, which leads to the require chain: require ob-python require ob require ob-tangle I believe the line should be changed to (defvar org-id-link-to-org-use-id) ; Dynamically scoped which makes the variable dynamically scoped without setting its value. I don't know if ob-tangle.el refers to org-id-link-to-org-use-id before it has a value set. If so, the change I suggest would cause an error and ob-tangle.el should be fixed to require org-id before using said variable. Emacs : GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.27, cairo version 1.17.4) of 2021-03-26 Package: Org mode version 9.5.2 (9.5.2-gfbff08 @ /home/ionasal/.emacs.d/elpa/org-9.5.2/)