# Possible Boolean serialization issue with TRODynamicRequest

**URL:** https://talk.remobjects.com/t/possible-boolean-serialization-issue-with-trodynamicrequest/34328
**Category:** Remoting SDK
**Tags:** delphi
**Created:** [November 12, 2026, 10:14am UTC](https://talk.remobjects.com/t/possible-boolean-serialization-issue-with-trodynamicrequest/34328 "2026-11-12T10:14:37Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Janusz\_Szymura](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/j/50afbb/32.png) [@Janusz\_Szymura](https://talk.remobjects.com/u/Janusz_Szymura)
#### Post date: [November 12, 2026, 10:14am UTC](https://talk.remobjects.com/t/possible-boolean-serialization-issue-with-trodynamicrequest/34328/1 "2026-11-12T10:14:37Z")

</div>

Hello,

We observed a possible incompatibility between TRODynamicRequest and the generated server invoker in Delphi 13, Win32, using TROBinMessage.

When sending a Boolean parameter with value True:

- In TRODynamicRequest, the Boolean value is 1.
- TROStreamSerializer.WriteBoolean converts it to LongBool and writes -1 ($FFFFFFFF).
- The generated server invoker reads the parameter using \_\_Message.Read(…, TypeInfo(Boolean), …). The resulting Boolean contains $FF instead of $01.  
As a result, the debugger displays the parameter as True, but comparing to true evaluetes to false and the corresponding block is skipped.

Could you please check whether these serialization and deserialization paths are compatible?

Deserialization in file invk pas:

```auto
var
  l_aSynchronize: Boolean;
begin
  { ... }

  __Message.Read('aSynchronize', System.TypeInfo(Boolean), l_aSynchronize, []);
  //after this debuger shows l_aSynchronize = True

  if (l_aSynchronize = true) then // this evaluates to false
  begin
  
  end;

end;

```

---

<div class="post-metadata">

### Author: ![RemObjectsSoftware](https://talk.remobjects.com/user_avatar/talk.remobjects.com/remobjectssoftware/32/15947_2.png) [@RemObjectsSoftware](https://talk.remobjects.com/u/RemObjectsSoftware)
#### Post date: [November 12, 2026, 11:26am UTC](https://talk.remobjects.com/t/possible-boolean-serialization-issue-with-trodynamicrequest/34328/2 "2026-11-12T11:26:23Z")

</div>

Logged as [bugs://D19745](https://www.remobjects.com/portal/bugs/?id=D19745).

---

<div class="post-metadata">

### Author: ![RemObjectsSoftware](https://talk.remobjects.com/user_avatar/talk.remobjects.com/remobjectssoftware/32/15947_2.png) [@RemObjectsSoftware](https://talk.remobjects.com/u/RemObjectsSoftware)
#### Post date: [November 12, 2026, 11:31am UTC](https://talk.remobjects.com/t/possible-boolean-serialization-issue-with-trodynamicrequest/34328/3 "2026-11-12T11:31:47Z")

</div>

[bugs://D19745](https://www.remobjects.com/portal/bugs/?id=D19745) was closed as fixed.

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [November 12, 2026, 11:35am UTC](https://talk.remobjects.com/t/possible-boolean-serialization-issue-with-trodynamicrequest/34328/4 "2026-11-12T11:35:10Z")

</div>

Hi,

pls update `uROStreamSerializer.pas` as

```auto
procedure TROStreamSerializer.ReadEnumerated(const aName: string; anEnumTypeInfo: PTypeInfo; var Ref; ArrayElementId: Integer = -1);
..
  else begin
    if anEnumTypeInfo = TypeInfo(Boolean) then //added
      Boolean(Ref) := l_value <> 0 //added
    else //added
      IntegerToEnumerated(l_value, anEnumTypeInfo, Ref);
  end;
end;

```

launch `C:\Program Files (x86)\RemObjects Software\Build\install_DA.cmd` (or `install_RO.cmd`) with admin rights for rebuilding .bpl and .dcu
