As from about Sep 21 2025, a Windows program I developed in Delphi that downloads online OpenStreetMap tiles using Indy's TIdHTTP.Get() method has stopped working, sometimes issuing error messages like EIdIOHandlerPropInvalid "IOHandler value is not valid". What changes in Delphi, the Indy library, or the OpenStreetMap tile URLs could possibly have caused the error? The Delphi program has been working satisfactorily for a long time now.
The error occurs in this code:
MemoryStream.Position:= 0;
IdHTTP1.Get(SourceURL, MemoryStream);
The tile URL format that the program uses is
http://{s}.tile.openstreetmap.org/{z}/{x}/{y} where s='a'
The TIdHTTP component is created and destroyed in the initialization and finalization sections of the unit in which it is declared. The code is as follows:
initialization
IdHTTP1:= TIdHTTP.Create(nil);
{$ifdef include_TIdSSLIOHandlerSocketOpenSSL}
SSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
SSLIOHandler.SSLOptions.Method := sslvSSLv2;
SSLIOHandler.SSLOptions.Mode := sslmClient;
IdHTTP1.IOHandler:= SSLIOHandler;
{$endif}
IdHTTP1.HandleRedirects := True;
Alpha:= arctan(sinh(Pi));
finalization
{$ifdef include_TIdSSLIOHandlerSocketOpenSSL}
SSLIOHandler.Free;
{$endif}
IdHTTP1.Free;
end.
The unit is compiled with the directive
{$undef include_TIdSSLIOHandlerSocketOpenSSL}