# TCP Device Bad\_ReadOnly: User does not have permission to perform the requested operation

**URL:** <https://forum.inductiveautomation.com/t/tcp-device-bad-readonly-user-does-not-have-permission-to-perform-the-requested-operation/113595>\
**Category:** Ignition\
**Created:** [January 28, 2026, 11:50am UTC](https://forum.inductiveautomation.com/t/tcp-device-bad-readonly-user-does-not-have-permission-to-perform-the-requested-operation/113595 "2026-01-28T11:50:32Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![hulla](https://avatars.discourse-cdn.com/v4/letter/h/49beb7/32.png) [@hulla](https://forum.inductiveautomation.com/u/hulla)\
**Post date:** [January 28, 2026, 11:50am UTC](https://forum.inductiveautomation.com/t/tcp-device-bad-readonly-user-does-not-have-permission-to-perform-the-requested-operation/113595/1 "2026-01-28T11:50:32Z")

</div>

I am trying to test TCP device. Plan is to connect various scales via TCP to RC232 converter. I have Moxa nPort connected to a loop on RS232 side. When I connect via telnet I say Hello and I recieve Hello.

I created TCP device set IP and port and 1/1 CONNECTED

From now on, not much seems to work. I have set the device to be writable but the tag

[default]Devices/_TCPTest1_/4001/Writable

is empty. I do not know why.

[default]Devices/_TCPTest1_/4001/Message

Error writing to Message: Bad\_ReadOnly: User does not have permission to perform the requested operation.

But all the permissions seems OK, I have only one opcuauser who has all the permissions.

I wanted to test how can I control the communication flow etc, but I cannot get to the basic operation.

is there any more detailed doc than [UDP and TCP Driver | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.3/ignition-modules/opc-ua/opc-ua-drivers/udp-and-tcp-driver)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/c/0c7591ea8b6ee821b4825ec235efa3b5679c9e3c.png)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/e/1e632d2ebd911163b74f8ee61b101b58a86ef189.png)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/c/9cbc8f86ee54c5cf443d769e9dcc0e7ea8509eaa.png)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/1/4191d2578d1f792a68f9168d0932695e5c3830e2.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 28, 2026, 12:12pm UTC](https://forum.inductiveautomation.com/t/tcp-device-bad-readonly-user-does-not-have-permission-to-perform-the-requested-operation/113595/2 "2026-01-28T12:12:11Z")

</div>

> [@hulla](#):
>
> Writable is empty. I do not know why.

Because **you** need to write to it. Incoming data arrives in Message (readonly). You respond to the Writable tag with your outgoing data.

(Or use the `*Bytes` tags if your messages aren't ASCII.)

---

<div class="post-metadata">

**Author:** ![hulla](https://avatars.discourse-cdn.com/v4/letter/h/49beb7/32.png) [@hulla](https://forum.inductiveautomation.com/u/hulla)\
**Post date:** [January 28, 2026, 12:46pm UTC](https://forum.inductiveautomation.com/t/tcp-device-bad-readonly-user-does-not-have-permission-to-perform-the-requested-operation/113595/3 "2026-01-28T12:46:47Z")

</div>

Thank you!
