Release Notes

September 1, 2026 · Robocorp

Robocorp 3.1.3 and robocorp-log 3.1.4

Python 3.14 support

robocorp-log crashed on Python 3.14 before any task code executed (#485, fixed in #486):

AttributeError: module 'ast' has no attribute 'Str'

ast.Str was deprecated in Python 3.8, began emitting a DeprecationWarning in 3.12, and was removed entirely in 3.14. robocorp-log still used it in the AST rewriter that adds the automatic logging callbacks, so the crash happened while the import hook was rewriting an ordinary standard-library import during logger setup — before your tasks were even collected. There was no way to work around it from automation code; the only option was to stay on Python 3.13 or earlier.

The rewriter now uses ast.Constant, which has been the correct representation for a literal since Python 3.8. This also clears the related deprecation warnings on Python 3.12 and 3.13.

If you pinned your environment to an older Python because of this, you can now move to 3.14:

# conda.yaml dependencies: - python=3.14 - pip: - robocorp==3.1.3

Upgrading

robocorp 3.1.3 pulls in the fixed robocorp-log automatically, so installing the meta package is enough:

pip install --upgrade robocorp

If you depend on robocorp-log directly, upgrade it to 3.1.4.

Released packages

  • package robocorp 3.1.3 (meta package)
  • package robocorp-log 3.1.4
August 23, 2026 · Robocorp

Robocorp 3.1.2 and robocorp-log 3.1.3

Control Room API request timeout

robocorp-vault, robocorp-workitems and robocorp-storage now apply a default 60-second request timeout to Control Room API calls (#484).

Previously these calls were made without an explicit timeout, so requests would wait indefinitely for a response. A stalled connection — one dropped by a proxy or load balancer, for instance — hung the run forever instead of raising and letting the existing retry logic take over. With a timeout in place the request fails, retries, and the task can make progress.

The value is configurable through the RC_API_REQUEST_TIMEOUT environment variable. Set it in your run environment (the env section of robot.yaml, or a Control Room environment variable) — that is the normal place for it.

It is read once when the module is imported, so if you do set it from Python it has to happen before the import:

import os # Read once at import time, so it must be set before robocorp.vault is imported. os.environ["RC_API_REQUEST_TIMEOUT"] = "120" from robocorp import vault secret = vault.get_secret("MySecret")

Robocorp Log

robocorp-log 3.1.3 fixes 13 npm security vulnerabilities in the React application that renders the log output (#473), affecting dompurify, vite, lodash, flatted, picomatch, postcss, brace-expansion and tmp.

  • dompurify bumped to ^3.4.0 and vite to ^6.4.2
  • npm overrides added to pull in fixed versions of transitive dependencies
  • The embedded React output view was rebuilt, so log.html files produced by this version carry the fixed bundle

Robocorp Windows

robocorp-windows 1.1.2 fixes wait_for_condition() ignoring the caller-supplied timeout and always waiting 8 seconds (#480). This release shipped slightly ahead of the rest of the batch, on 24 July 2026.

from robocorp import windows calc_window = windows.find_window("name:Calculator") calc_window.click("Close Calculator") # Before 1.1.2 this always waited 8 seconds and ignored `timeout`. windows.wait_for_condition(calc_window.is_disposed, timeout=30)

Released packages

  • package robocorp 3.1.2 (meta package)
  • package robocorp-log 3.1.3
  • package robocorp-workitems 1.5.1
  • package robocorp-vault 1.4.1
  • package robocorp-storage 1.1.1
  • package robocorp-windows 1.1.2
August 21, 2023 · Robocorp

Robocorp Log 2.7.0

The following improvements are now available in Robocorp Log 2.7.0:

  • if statements now create a scope in log.html (when the function is not a generator).

  • If an exception has a cause or context the context/cause is now shown in the log (i.e.: when an exception is raised from another exception or is raised while handling another exception all exceptions are shown).

  • continue and break inside a loop are properly handled.

  • continue and break are now shown in the logs.

  • It's now possible to expand / collapse recursively in log.html.

  • log.html: When navigating using left arrow, if the element is already collapsed the parent is focused.

  • Spec version changed from 0.0.3 to 0.0.4.

  • re.Pattern is now accepted at add_sensitive_variable_name_pattern.

July 13, 2023 · VS Code Extension, Developer Tools, Robocorp

Updates on Robocorp Code and robocorp-log

Updates on Robocorp Code

  • The logging from robocorp.tasks/robocorp.log is now integrated directly into VSCode (ROBO TASKS OUTPUT view).
  • Note: Requires robocorp.tasks 2.1.2, robocorp.log 2.3.0 and Robocorp Code 1.7.0.
  • Elements which have a location can now be clicked to open the related file directly inside of VSCode.
  • The terminal view can now also show entries logged from robocorp.log debug|warn|info|critical and not just stdout/stderr.

Other noteworthy changes in Robocorp Code:

  • Fixed issues in Run Task / Debug Task code lenses (launching robocorp.tasks):

  • Robot environment properly used when robot is available.

  • The input work item is properly selected when available.

  • If multiple entry points in the same file were available the selected one will be run.

  • If a robot.yaml has preRunScripts they'll be run prior to launching.

Noteworthy changes in robocorp.log:

  • Added robocorp.log.debug (so, there's one more level available to log messages).

  • It's possible to filter log levels by using setup_log(log_level='debug|info|warn|critical') (so that log levels filtered out won't even be added to the log.html).

  • It's possible to also redirect to sys.stdout or sys.stderr the messages added with log.debug, log.info, log.warn and log.critical by using setup_log(output_log_level='debug|info|warn|critical') along with setup_log(output_stream={'debug': 'stderr'}) (note that the current default is just redirecting critical calls to stderr).

June 22, 2023 · Control Room, Developer Tools, Robocorp, VS Code Extension

Introducing the new era of Python automations

We're excited to announce our new automation framework for Python automations – simply called robocorp. The release brings the experience of developing Python automations on par with Robot Framework on our platform. The project templates in our VS Code extension have been updated to use the new framework and leverage its capabilities.

Check out our blog post for in-depth story about the new features, or view and read the summary below.

Features

  • New @task Decorator: Any method decorated with @task becomes runnable, and can thus be scheduled or otherwise managed as a part of a Process or Assistant in Control Room.
  • Visual and Autogenerated Logs: We've brought the loved logging features from Robot Framework to Python, all without you having to write a single line of code. Furthermore, you can now control the logging with ease, suspending logs for sections dealing with sensitive data in several different ways.
  • New Robocorp Automation Libraries: While our rpaframework libraries are based on Python, we wanted to enhance the developer experience for those choosing to work on Python exclusively. The new robocorp automation libraries roll out focusing on common automation tasks (Excel, browser, APIs) and interacting with Robocorp Control Room (such as Vault, Asset Storage, Work Items).
  • New Python Templates in VS Code and Portal: Easiest way to start using these new capabilities is through the new Python templates in VS Code. They are already available, for example have a look at Playwright Browser automation template.