Bug ID 737252: TCL error: ERR_NOT_SUPPORTED when iRule code executed after HTTP::respond or other commands

Last Modified: Jul 24, 2024

Affected Product(s):
BIG-IP LTM(all modules)

Known Affected Versions:
14.1.0, 14.1.0.1, 14.1.0.2, 14.1.0.3, 14.1.0.5, 14.1.0.6, 14.1.2, 14.1.2.1, 14.1.2.2, 14.1.2.3, 14.1.2.4, 14.1.2.5, 14.1.2.6, 14.1.2.7, 14.1.2.8, 14.1.3, 14.1.3.1, 14.1.4, 14.1.4.1, 14.1.4.2, 14.1.4.3, 14.1.4.4, 14.1.4.5, 14.1.4.6, 14.1.5, 14.1.5.1, 14.1.5.2, 14.1.5.3, 14.1.5.4, 14.1.5.6, 15.0.0, 15.0.1, 15.0.1.1, 15.0.1.2, 15.0.1.3, 15.0.1.4, 15.1.0, 15.1.0.1, 15.1.0.2, 15.1.0.3, 15.1.0.4, 15.1.0.5, 15.1.1, 15.1.2, 15.1.2.1, 15.1.3, 15.1.3.1, 15.1.4, 15.1.4.1, 15.1.5, 15.1.5.1, 15.1.6, 15.1.6.1, 15.1.7, 15.1.8, 15.1.8.1, 15.1.8.2, 15.1.9, 15.1.9.1, 15.1.10, 15.1.10.2, 15.1.10.3, 15.1.10.4, 16.0.0, 16.0.0.1, 16.0.1, 16.0.1.1, 16.0.1.2, 16.1.0, 16.1.1, 16.1.2, 16.1.2.1, 16.1.2.2, 16.1.3, 16.1.3.1, 16.1.3.2, 16.1.3.3, 16.1.3.4, 16.1.3.5, 16.1.4, 16.1.4.1, 16.1.4.2, 16.1.4.3, 16.1.5, 17.0.0, 17.0.0.1, 17.0.0.2

Opened: Jul 17, 2018

Severity: 2-Critical

Related Article: K23237429

Symptoms

Connections are dropped, and you see the following errors in /var/log/ltm: 01220001:3: TCL error: /Common/<iRule_name> <HTTP_REQUEST> - ERR_NOT_SUPPORTED (line 1) invoked from within "HTTP::host".

Impact

When this error is encountered, an error is logged and the connection is dropped.

Conditions

iRule with any of the following commands: -- HTTP::respond -- HTTP::redirect -- HTTP::retry iRule contains code (such as logging code) following the command, and the code uses something from HTTP, for example: log local0.debug "[HTTP::uri]"

Workaround

Alter your iRule code to not contain any iRule commands following HTTP::respond, HTTP::redirect, or HTTP::retry. You can use HTTP::has_responded to detect whether HTTP has already responded.

Fix Information

None

Behavior Change

HTTP iRule commands that inspect HTTP state after the commands HTTP::respond, HTTP::redirect, and HTTP::retry now return errors instead of returning corrupt data. It may be useful to check HTTP::has_responded to detect whether or not HTTP state is unavailable.

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips