mgth/LittleBigMouse · error · HttpRequestException
No VIDAA descriptor answered at
Error message
No VIDAA descriptor answered at {ipAddress} on ports {string.Join('/', HisenseVidaaProtocol.DescriptorPorts)}. What it means
HisenseVidaaDiscovery.ProbeAsync fetches the device descriptor XML from the projector at a given IP across the known VIDAA descriptor ports. If every port attempt fails with an HttpRequestException, it rethrows an HttpRequestException describing the IP and ports tried, meaning no VIDAA-capable device responded at that address.
Solutions
- Ping the projector IP and confirm it is powered on and connected to the same network
- Check that the projector's network remote/VIDAA control setting is enabled
- Verify no firewall or AP isolation blocks HTTP on the descriptor ports
- Re-run discovery on the /24 subnet (FindAsync with a seed address) to locate the device
Example fix
// before
var device = await discovery.ProbeAsync(ip);
// after
try
{
var device = await discovery.ProbeAsync(ip);
}
catch (HttpRequestException)
{
// device unreachable: check power/network, then rescan subnet
} Defensive patterns
Strategy: try-catch
Validate before calling
// ping first
using var ping = new Ping();
var reply = await ping.SendPingAsync(ip, 1500);
if (reply.Status != IPStatus.Success) throw new InvalidOperationException("Projector unreachable"); Try / catch
try { return await discovery.ProbeAsync(ip, token); }
catch (HttpRequestException ex) { throw new DeviceUnreachableException($"{ip}: {ex.Message}", ex); } Prevention
- Ping the device before probing
- Store the projector IP in settings only after a successful probe
- Check AP isolation/firewall when discovery fails network-wide
- Treat timeouts and refused connections as 'device asleep' and prompt user
When it happens
Trigger: Calling ProbeAsync (directly or via FindAsync or subnet scan) with an IP where nothing answers on HisenseVidaaProtocol.DescriptorPorts: connection refused, timeout, or HTTP errors on all descriptor ports.
Common situations: Typo in the projector IP; TV/projector asleep or powered off; device on a different VLAN/subnet; firewall or AP isolation blocking the ports; TV's network settings restricting remote control.
Understand the failure class
Background: ECONNREFUSED and "connection refused" / "could not connect to server" errors: what they mean and how to fix them — this error's family across 44 libraries.
Related errors
- No Hisense VIDAA device answered on
- Enter a valid projector IPv4 address.
- A Wi-Fi MAC address is required for VIDAA authentication.
- The network device does not advertise VIDAA remote control.
- Invalid VIDAA remote key.
AI-assisted analysis of mgth/LittleBigMouse@7a42f01d47 (2026-09-16).
Data as JSON: /api/errors/6b4a9a96a524e358.
Report an issue: GitHub.
Appendix: source
Thrown at LittleBigMouse.Plugins/LittleBigMouse.Plugin.Vcp.Avalonia/HisenseVidaa/HisenseVidaaDiscovery.cs:43
{
using var attempt = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
attempt.CancelAfter(TimeSpan.FromSeconds(2));
var xml = await httpClient.GetStringAsync(
$"http://{ipAddress}:{port}/MediaServer/rendererdevicedesc.xml", attempt.Token)
.ConfigureAwait(false);
return HisenseVidaaProtocol.ParseDescriptor(ipAddress, xml);
}
catch (OperationCanceledException e) when (!cancellationToken.IsCancellationRequested)
{
lastError = e;
}
catch (HttpRequestException e)
{
lastError = e;
}
}
throw new HttpRequestException(
$"No VIDAA descriptor answered at {ipAddress} on ports {string.Join('/', HisenseVidaaProtocol.DescriptorPorts)}.",
lastError);
}
public async Task<HisenseVidaaDevice> FindAsync(
string lastKnownAddress,
CancellationToken cancellationToken = default)
{
if (!Ipv4Address.TryParse(lastKnownAddress, out var seed))
throw new ArgumentException("Enter a valid projector IPv4 address.", nameof(lastKnownAddress));
try
{
return await ProbeAsync(lastKnownAddress, cancellationToken).ConfigureAwait(false);
}
catch (HttpRequestException)
{
// SSDP multicast does not cross routers. Search only the /24 of theView on GitHub (pinned to 7a42f01d47)