<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[UISP Application | Topics | Ubiquiti Community]]></title>
        <description><![CDATA[UISP Application | Topics | Ubiquiti Community]]></description>
        <link>https://community.ui.com</link>
        <image>
            <url>https://community.ui.com/images/og-image.jpg</url>
            <title>UISP Application | Topics | Ubiquiti Community</title>
            <link>https://community.ui.com</link>
        </image>
        <generator>Ubiquiti Community</generator>
        <lastBuildDate>Wed, 30 Sep 2026 21:45:52 GMT</lastBuildDate>
        <atom:link href="https://community.ui.com/rss/topics/uisp-app" rel="self" type="application/rss+xml"/>
        <pubDate>Wed, 30 Sep 2026 21:45:52 GMT</pubDate>
        <copyright><![CDATA[© 2026 Ubiquiti Inc. All rights reserved.]]></copyright>
        <item>
            <title><![CDATA[UISP Cloud open ticket]]></title>
            <description><![CDATA[<p><span class="mention" data-id="1814fd48-e64f-441e-9bf8-735b64ce0d25" data-value="UI-Team" data-denotation-char="@"><span contenteditable="false"><span class="ql-mention-denotation-char">@</span>UI-Team</span></span></p><p><br></p><p>I have an open ticket since Sept 25th regarding our UISP instance performance and reachability. We have had issues all weekend and after several reboots its still running off. I am posting here to see if there is anyone who can respond to my ticket please. #6007081 I believe is the ticket number</p>]]></description>
            <link>https://community.ui.com/questions/UISP-Cloud-open-ticket/ce08fb3f-9a7c-45bc-b7e7-b401a8287eaf</link>
            <guid isPermaLink="false">ce08fb3f-9a7c-45bc-b7e7-b401a8287eaf</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[MojaveCo]]></dc:creator>
            <pubDate>Mon, 28 Sep 2026 23:33:11 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Billing Issues with suspended account not able to be prorated to the Time it was suspended]]></title>
            <description><![CDATA[<p>To whom it may concern,</p><p>&nbsp;</p><p>There is currently an issue in the CRM where if an account is placed on suspension due to non-payment, the invoice for that entire billing cycle is pushed onto the account instead of the prorated bill up to the time of suspension. This then requires that the account be manually credited from the date of suspension to the end of the billing cycle or the date of reconnection. This is causing unnecessary work due to additional steps becoming required to maintain the accuracy of the balance on the client accounts in the CRM.</p>]]></description>
            <link>https://community.ui.com/questions/Billing-Issues-with-suspended-account-not-able-to-be-prorated-to-the-Time-it-was-suspended/e7d25185-b5ef-4853-8b00-1dfe4b490857</link>
            <guid isPermaLink="false">e7d25185-b5ef-4853-8b00-1dfe4b490857</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[kennygtech]]></dc:creator>
            <pubDate>Fri, 25 Sep 2026 22:16:36 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Feature Request / API Pipeline: Support UPSERT(Update Insert) for Custom Attributes on Client Endpoint]]></title>
            <description><![CDATA[<p><span class="mention" data-id="1814fd48-e64f-441e-9bf8-735b64ce0d25" data-value="UI-Team" data-denotation-char="@"><span contenteditable="false"><span class="ql-mention-denotation-char">@</span>UI-Team</span></span></p><p><br></p><p><br></p><p>There is a critical routing/validation limitation within the UISP CRM API endpoint <code>PATCH /api/v1.0/clients/{id}</code> when attempting to update custom attributes.</p><p>If a client record has an existing record/value stored for a specific <code>customAttributeId</code> (even a blank string initialized via the Web UI), the <code>PATCH</code> payload executes perfectly. However, if the custom attribute has never been touched or initialized for that specific client, the backend entity manager fails to find a database row index for that sub-resource, causing the entire API call to reject with a misleading <code><strong>404 Not Found</strong></code> or a structural mutation failure.</p><p>Because <code>POST /api/v1.0/clients/{id}/attributes</code> throws a <code>405 Method Not Allowed</code>, there is currently no programmatic way via the API to initialize a brand-new custom attribute for an existing client unless the data is manually input or saved via the frontend Web UI framework first.</p><p>This completely blocks large-scale data migrations from external data systems into UISP via scripting.</p><p><br></p><p>Reproduce</p><ol><li>Create a Custom Attribute in CRM Settings (e.g., ID: <code>21</code>).</li><li>Create or find an existing client that has <strong>never</strong> had data typed into this custom attribute via the UI (the <code>"attributes": []</code> array returns empty on a <code>GET</code> request).</li><li>Attempt to add data to this attribute by sending a <code>PATCH</code> request to <code>/api/v1.0/clients/{id}</code> with the payload:</li></ol><p>{ "attributes": [ { "customAttributeId": 21, "value": "TestValue" } ] }</p><p><br></p><p><strong>Expected Result:</strong> The API should dynamically initialize/insert the missing attribute relation into the client database profile.</p><p><strong>Actual Result:</strong> The server returns a <code>{"code":404,"message":"Not Found"}</code> response.</p><p><br></p><p>is there a way around this? May we request if this can be updated, the validation/ORM logic for the <code>/clients/{id}</code> endpoint. If a <code>PATCH</code> or <code>PUT</code> request contains a valid <code>customAttributeId</code> that exists globally in the system but does not yet exist for that specific client entity, the backend should perform an <strong>upsert</strong> (Insert if missing, Update if exists) rather than dropping the request with an unhandled 404 entity error.</p>]]></description>
            <link>https://community.ui.com/questions/Feature-Request-API-Pipeline-Support-UPSERTUpdate-Insert-for-Custom-Attributes-on-Client-Endpoint/3a32283a-b3b1-4004-9f42-e433204ad606</link>
            <guid isPermaLink="false">3a32283a-b3b1-4004-9f42-e433204ad606</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[mike_leash]]></dc:creator>
            <pubDate>Tue, 22 Sep 2026 09:30:43 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP API endpoint returning incorrect information on Airmax devices]]></title>
            <description><![CDATA[<p>UISP version 3.0.159</p><p><br></p><p>Access points and stations on firmware 8.7.25</p><p><br></p><p>The API endpoint /devices/airmaxes/{id}/config/wireless is returning the incorrect "mode" string for Airmax devices.</p><p><br></p><p>On a PrismStation 5AC, that API endpoint returns the "mode" as "ap-ptp", even though it is actually set to PTMP.</p><p><br></p><p>On a Litebeam 5AC, that API endpoint returns the mode as "sta-ptp" instead of "sta-ptmp". If you use that endpoint to update the config with "sta-ptp" as the mode, the Litebeam accepts that config and disconnects from its AP because it is now in the wrong mode.</p><p><br></p><p><span class="mention" data-id="1814fd48-e64f-441e-9bf8-735b64ce0d25" data-value="UI-Team" data-denotation-char="@"><span contenteditable="false"><span class="ql-mention-denotation-char">@</span>UI-Team</span></span></p><p>Attachments:</p><ul><li>Screenshot 2026-09-21 233848.png</li>
<li>Screenshot 2026-09-21 234632.png</li>
<li>Screenshot 2026-09-21 234912.png</li></ul>]]></description>
            <link>https://community.ui.com/questions/UISP-API-endpoint-returning-incorrect-information-on-Airmax-devices/afa8f6df-f732-4d5c-9218-d71cb9caabfe</link>
            <guid isPermaLink="false">afa8f6df-f732-4d5c-9218-d71cb9caabfe</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[Andrew_Brent]]></dc:creator>
            <pubDate>Tue, 22 Sep 2026 06:52:29 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Custom UISP/CRM plugin for effective channel planning ]]></title>
            <description><![CDATA[<p>Here's another tool that we've asked UI to make that never came, and I'm happy to share with anyone who needs it.</p><p><br></p><p>It's a plugin in CRM that connects to UISP via API. It as admin access to UISP so you can change AP channels from the plugin.</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/505fcf91-4626-4eaa-87ef-51000744b528/30698c8f-5d2e-4db4-a746-81a895eee1c3" style="width: 100%;object-fit: cover;height: 205px" /><p>Click the plugin icon and open the map, and it will open this tool. It uses free ESRI world imagery satellite data, but you can connect Google Maps data with a free Google Maps API key in the plugin settings.</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/505fcf91-4626-4eaa-87ef-51000744b528/0febce8f-4eef-40f4-9dee-33a78d58b121" style="width: 100%;object-fit: cover;height: 205px" /><p>You can see on the left panel you can swap between your 60GHz and 5GHz networks. It has every AP in your network placed by its internal GPS coords, and the heading is estimated based on customer location on the AP. Each AP is color coded to a specific channel. Solid color means full channel; diagonal lines mean half channel. The tool takes terrain data into consideration (it pulls terrain data from Amazon - they have free terrain data available to the public for some reason. That being said, this may only work in the US), so you can count on the tool's coverage estimate to be pretty accurate. APs that are highlighted with a dotted yellow line show a channel conflict with another AP in your network.</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/8e3f32a9-861d-4808-b3f2-6bf57539add1/c0193fcf-3264-4f33-a2bf-4fe042ff37b1" style="width: 100%;object-fit: cover;height: 205px" /><p><br></p><p>You can toggle the map between full color map and b&amp;w so it is easier to distinguish channels. You can toggle backhauls on/off. You can enable customer location icons and customer links to better visualize what your network looks like. I have them disabled to protect our customers' privacy but works great to better see where there could be self-interference, or if there is a better AP that the customer could be connected to.</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/8e3f32a9-861d-4808-b3f2-6bf57539add1/0f0b701a-6828-4116-91fd-122deb195d0d" style="width: 100%;object-fit: cover;height: 205px" /><p><br></p><p><br></p><p>If you click on a sector, will bring up the following information.</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/8e3f32a9-861d-4808-b3f2-6bf57539add1/cc95f9d7-e67e-4355-befa-825759730b37" style="width: 100%;object-fit: cover;height: 205px" /><p><br></p><p>Here you can see the tool doing math to find the best possible channel for the AP to operate on. You can select the recommended channel and hit apply, and it will change that APs channel to the recommended channel instantly. The map updates once every 30 seconds, so you'll see the change apply to your map shortly. This is what a clean, conflictless AP looks like.</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/8e3f32a9-861d-4808-b3f2-6bf57539add1/8ed65d74-9207-4eee-84c6-69d701115f90" style="width: 100%;object-fit: cover;height: 205px" /><p><br></p><p>The tool takes lots of variables into consideration to establish an opinion on the conflict severity. It has a 3-tiered conflict rating: Low conflict, medium conflict, and high conflict. It creates a conflict rating based on AP heading, overlap, channels used (and channel width), whether GPS sync is enabled, AP heading, azimuth and vertical beam, surrounding terrain, customer locations, among a few other variables. Here you can see it taking the 3 degree vert beam of the Wave AP into consideration.</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/505fcf91-4626-4eaa-87ef-51000744b528/59d2b9e9-a1a7-46f6-b9c9-225f187af03f" style="width: 100%;object-fit: cover;height: 205px" /><p>It will also show you relevant information about your network in the bottom left hand panel that UISP may miss.</p><p><br></p><p>It works by populating all of your sites into the tool, you can scroll and select each individual site, and you show and hide individual APs so you don't get overwhelmed with the amount of data on your map.</p><p><br></p><p>It has changed how we channel plan, and it is AMAZING to be able to visualize the Wave network with a color-coded system.</p><p><br></p><p>I am working on getting Wave 5GHz backup radios into the tool, but haven't cracked that egg yet.</p><p><br></p><p>For your AirMAX devices, it pulls the data that you have input into the radio - since most of UI's 5GHz APs have SMA connectors. You can update the antenna type width, gain, ect. You can see here that 5GHz operates similarly:</p><img src="https://img.community.ui.com/f13aaf0d-f74d-4d6b-9e11-ffaaf8661894/questions/505fcf91-4626-4eaa-87ef-51000744b528/e2782860-f8b4-43cf-b760-e6a3a4c93d11" style="width: 100%;object-fit: cover;height: 205px" /><p>The information card shows information like:</p><p><br></p><ul><li>GPS sync</li><li>Client count</li><li>Beamwidth of AP</li><li>Distance to furthest client</li><li>square km's of coverage area, ect</li></ul><p>You can also edit information about the APs, and the information that you manually put in will trump the data that the tool pulled from UISP in case UISP has something wrong.</p><p><br></p><p>This is not a replacement for UISP by any means, it isn't magic, and it may get some things wrong - but you can use it as a trustworthy tool to help you channel plan more effectively. PM me if you want the tool and I'll email the zip file to you. If you don't like something about it, you can upload the zip file to Claude and it can make any changes that you'd like.</p><p><br></p><p>It's important that we all channel plan as accurately as we possibly can not only so we don't shoot ourselves in the foot, but also so we can be good neighbors. Thanks!</p>]]></description>
            <link>https://community.ui.com/questions/Custom-UISP-CRM-plugin-for-effective-channel-planning/8e3f32a9-861d-4808-b3f2-6bf57539add1</link>
            <guid isPermaLink="false">8e3f32a9-861d-4808-b3f2-6bf57539add1</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[UnicornWrangler]]></dc:creator>
            <pubDate>Tue, 15 Sep 2026 19:44:37 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP Maps Blocked - Access Blocked - UISP 3.0.159]]></title>
            <description><![CDATA[<p>@UI-Team</p><p>UISP 3.0.159</p><p>Console 5.5.0</p><p><br></p><p>It seems that the UISP Console that the "Maps" are being blocked by the provider. Just happened to notice it today.</p><img src="https://img.community.ui.com/7514a1ea-ded1-45cf-929c-144d8a686a6c/questions/0369fd5e-b016-4b3b-bed2-a2da9dcafa2b/25e9cc52-9af8-4c93-9a9d-6453fb66a9c4" style="width: 100%;object-fit: cover;height: 205px" />]]></description>
            <link>https://community.ui.com/questions/UISP-Maps-Blocked-Access-Blocked-UISP-3-0-159/25a02c46-3fda-4a06-80b9-4edfef5bde0e</link>
            <guid isPermaLink="false">25a02c46-3fda-4a06-80b9-4edfef5bde0e</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[DBNet]]></dc:creator>
            <pubDate>Sat, 12 Sep 2026 15:03:55 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Feature request] UISP: custom HTTPS port for the EdgeRouter web UI links (EdgeOS "service gui https-port")]]></title>
            <description><![CDATA[<p><span class="mention" data-id="1814fd48-e64f-441e-9bf8-735b64ce0d25" data-value="UI-Team" data-denotation-char="@"><span contenteditable="false"><span class="ql-mention-denotation-char">@</span>UI-Team</span></span></p><p><br></p><p><strong>Environment</strong></p><p><br></p><p>UISP Application 3.0.159 (self-hosted), ~240 EdgeRouters (ER-4 / ER-12 / ER-Lite / ER-10X) with the web UI moved off 443:</p><p><br></p><p><code>set service gui https-port 9443</code></p><p><br></p><p><strong>Problem</strong></p><p><br></p><p>UISP always links to the device as <code>https://&lt;ip&gt;/</code> – in the devices list (IP Address column), in the device panel (Overview → IP Address), on the dashboard, and in the ⋮ → "Open Device Web UI" action. For every EdgeRouter that uses a non-default GUI port the link lands on whatever is on 443 (nothing, or a different service). There is no place in UISP to tell it the port.</p><p><br></p><p>The information is already there: UISP keeps the router's config backup, where the port is a single line (<code>service gui https-port N</code>), and airMAX/airFiber/Wave already get an <code>httpsPort</code> back from <code>POST /v2.1/devices/{id}/iplink/redirect</code> – EdgeRouters are just not covered.</p><p><br></p><p><strong>Request</strong></p><p><br></p><p>Any of these, in order of preference:</p><p><br></p><ol><li>Read <code>service gui https-port</code> from the EdgeRouter configuration and build the link with it (zero configuration for the user).</li><li>A per-device "Web UI port" field in the device settings, with a global default under Settings → Devices.</li><li>At least a global default for EdgeRouters.</li></ol><p>Same applies to <code>service gui http-port</code> if the link protocol is ever made configurable.</p><p><br></p><p><strong>What we do in the meantime (for anyone in the same situation)</strong></p><p><br></p><p>Two edits in the frontend bundle (<code>public/assets/index-*.js</code> inside the unms container), re-applied after every update:</p><p><br></p><ul><li>the IP link component (<code>href: \</code>${protocol}://${ip}/`<code>) → append </code>:9443<code>when the device type is</code>erouter`</li><li>the "Open Device Web UI" action (<code>window.open(\</code>https://${ip}`)`) → same condition, same port</li></ul><p>Other device types are untouched (EdgeSwitch stays on 443, airMAX/Wave keep the SSO redirect).</p><p>It works, but it is a hack on a minified bundle – hence the request.</p>]]></description>
            <link>https://community.ui.com/questions/Feature-request-UISP-custom-HTTPS-port-for-the-EdgeRouter-web-UI-links-EdgeOS-service-gui-https-por/38054d95-61b4-488a-92d4-179ac2a28de4</link>
            <guid isPermaLink="false">38054d95-61b4-488a-92d4-179ac2a28de4</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[cremenescu]]></dc:creator>
            <pubDate>Fri, 11 Sep 2026 06:00:16 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[New billing method in CRM: by consumption]]></title>
            <description><![CDATA[<p>I've been thinking a lot since some time ago about a feature that could maybe revolutionize isp industry (or not, cannot know, and don't know history or it all if this idea I have has already been thought and discussed/analyzed or not), residential isp industry at least.</p><p><br></p><p>A feature that could be added in some future version of UISP, in CRM part. The idea came from a way Starlink is charging or billing a special plan: enterprise plans, called "Priority" plans: "Local Priority" or Global Priority".</p><p><br></p><p>Starlink charges in a "Priority" plan by consumption, by GB. I don't know if globally it is the same, but at least it is here in Mexico: amounts of 50GB (one could choose some fixed 500 GB amounts monthly, cheaper by half per GB, and later add more amounts in 50GB steps).</p><p>It is a charge based in consumption.</p><p>In Residential plans Starlink still charges by a fixed price, with ToS and Fair Policy obviously, trying to mitigate the use of a Residential plan traffic outside of the house that contracted it. It is a mess of course: here in Mexico Starlink is almost only used by WISPs, putting Starlink residential antennas in their towers and exploiting at its max a residential data plan. Just in these months Starlink started to stop that, and is starting to restrict the Residential line when it reaches 5TB.</p><p>But the idea is that kind of charge: by consumption. I have been thinking a lot about that and all the useful implications it delivers if also used in residential service.</p><p><br></p><p>Residential internet could be charged the same as electricity is charged; by consumption, and stopped being like it is today: a fixed, calculated price. Which generates some problems when trying to offer high speed to the house for a better experience: high speed like 100Mbps, or more, now that ISP industry tends to deliver gigabit plans: Google for example delivers now up to 8 Gbps in its Edge plan. We offer high speed, but then need to mitigate by different ways the misuse of a residential plan as reselling or distributing by other ISP, which could be a mini ISP or a mini WISP who is entering this business.</p><p><br></p><p>If we charge by consumption in residential plans, then we could totally kind of forget about if a person or group of people or business could and would use a line to do its own mini business of delivering internet to neighbors or neighborhood; or becoming the wisp of his/her zone. We could offer of course a special plan for that, delivering tools for that guy or group who will be an isp, even mini (neighborhood): public IP, dedicated customer service, etc., what a dedicated (1:1) isp delivers. But our infrastructures would not be abused or overused by this mini ISP that sometimes is hard to discover and mitigate, mini (or big) exploiters of Residential lines (whose prices are calculated for use of devices inside a house).</p><p><br></p><p>Charging by GB, with still competitive GB prices, could mean this:</p><ul><li>You house are sharing your WiFi with your neighbours, no problem, you pay for the use they do, for all that traffic that goes and comes from your modem, from your line; it's not to you asking them for cooperation $ or not, or you have the money for all that use. It's like installing, in a 1-installation time, 3 houses or 4 houses, if a house is sharing with 2 or 3.</li><li>You WISP guy are using this residential line of 500Mbps to deliver to another 10 or 20 houses and you know it's difficult for me to notice it or find it is you: no problem, you pay for all that traffic of all those houses. It's like installing in a 1-installation time, 11 or 21 houses at once.</li><li>Etc.</li></ul><p>We could have at last control over all that that becomes sometimes a headache to avoid: TTL, conntrack, constant monitoring of consumption, try to know how many and which are the devices (models, names, stuff) used in the house (just to know if over there could there be a router which could mask hundreds of devices as one), reducing speed if we offer "unlimited data" and try to control misuse by reducing speed if funding a "wisp" house, etc.</p><p><br></p><p>We could rest about all that: you want to do it (resell, share with neighbours), then do it. I could still offer you a dedicated line for that (reselling), better than a residential line with kind of "generic" customer service, attention mixed with hundred or thousands, instead of dedicated or more focused. But we can rest, because our infrastructure is gaining the proper revenue from all that traffic distributed in all those "hidden" houses.</p><p><br></p><p>Imagine electricity charged by fixed monthly or bimonthly amount... that doesn't happen (at least not here in Mexico) because control of all that energy could be totally a mess: a hosue would stop being carefully with lights and use, with consumption, or would install as hell more load into the house without need and caution. Electricity is charged by consumption, right. Or an electrical company could just calculate the max use of a house and charge a fix monthly amount: Your meter is 100amps or 200amps, then I charge for those 200amps you could use or potentially use: it's up to you to put thick electrical wire and all electricity stuff well installed to consume if you want up to 200amps. But not, not useful an viable it seems. So it is charged by consumption: you used very few energy this month, then you pay very few; you used a lot, then now you have a great pay to do.</p><p><br></p><p>Internet consumption, internet traffic into the house could be charged the same way.</p><p><br></p><p>Well then, UISP could have an optional feature or function to create plans whose billing is by consumption: Maybe by amounts of 50GB, 100GB, 200GB...; or first amount 400GB and consequent amounts in 50GB steps, or do it in a way we could choose any first X amount and stepped X amounts: we could set a first 400GB, 300GB, 350GB, 1TB... and subsequent steps of 50GB, 100GB, 20GB, 1GB, 500GB...</p><p><br></p><p>Do I explain myself.</p><p><br></p><p>Charging by amount would help a lot,</p><p><br></p><p>For a special first great advantage, to deliver high or highest speed possible with more peace of mind, without the need of some special ToS or Fair Policies that try to mitigate misuse of residential lines.</p>]]></description>
            <link>https://community.ui.com/questions/New-billing-method-in-CRM-by-consumption/2295ad12-7c92-4e41-b628-7e6b1afd9424</link>
            <guid isPermaLink="false">2295ad12-7c92-4e41-b628-7e6b1afd9424</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[juanpasht]]></dc:creator>
            <pubDate>Fri, 11 Sep 2026 01:58:22 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP 3.0.159 – "Make static" on a dynamic DHCP lease (EdgeRouter) opens an empty DHCP Lease dialog – root cause + fix]]></title>
            <description><![CDATA[<p><strong>Environment</strong></p><p><br></p><ul><li>UISP Application 3.0.159 (self-hosted, Docker), upgraded from 3.0.151</li><li>EdgeRouter devices (EdgeOS), Device → DHCP → DHCP Leases table</li><li>Reproduced in Firefox and Chromium-based browsers, clean profile, no extensions</li></ul><p><strong>Steps to reproduce</strong></p><p><br></p><ol><li>Open an EdgeRouter in UISP → DHCP tab → DHCP Leases.</li><li>On a row of type <em>Dynamic</em>, click the ⋮ menu → <strong>Make static</strong>.</li></ol><p><strong>Expected</strong></p><p><br></p><p>The "DHCP Lease" dialog opens with DHCP Server, IP address and MAC address prefilled from the selected lease (this is what the action is written to do, and how it used to work).</p><p><br></p><p><strong>Actual</strong></p><p><br></p><p>The dialog opens empty: DHCP Server shows the first server in the list, IP address and MAC address are blank, Save is disabled. The user has to retype everything from the row.</p><p><br></p><p><strong>Root cause (from the shipped bundle </strong><code><strong>public/assets/index-*.js</strong></code><strong>)</strong></p><p><br></p><p>The <code>makeStatic</code> action does:</p><p><br></p><pre class="ql-syntax" spellcheck="false">CY1 = n =&gt; e =&gt; new Promise(t =&gt; {
&nbsp; const r = e(KDn(null));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// dialog lease = null (add mode)
&nbsp; setTimeout(() =&gt; {
&nbsp; &nbsp; const i = [
&nbsp; &nbsp; &nbsp; e(ZDn()),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // open dialog
&nbsp; &nbsp; &nbsp; e(k_(zU, "serverName", fd(pTe, n))),&nbsp; &nbsp; &nbsp;// redux-form autofill
&nbsp; &nbsp; &nbsp; e(k_(zU, "ipAddress",&nbsp; fd(nWn, n))),
&nbsp; &nbsp; &nbsp; e(k_(zU, "macAddress", fd(eWn, n))),
&nbsp; &nbsp; &nbsp; e(Eoi(zU, "leaseId", "ipAddress", "macAddress"))
&nbsp; &nbsp; ];
&nbsp; &nbsp; t([r].concat(i));
&nbsp; });
});
</pre><p>and the lease form (<code>leaseAddEditForm</code>) does:</p><pre class="ql-syntax" spellcheck="false">componentDidMount() {
&nbsp; const { lease: e } = this.props;
&nbsp; this.props.initialize({
&nbsp; &nbsp; serverName: zr(null, pTe, e), leaseId: zr(null, uTe, e),
&nbsp; &nbsp; ipAddress:&nbsp; zr(null, nWn, e), macAddress: zr(null, eWn, e)
&nbsp; });
}
</pre><p><br></p><p>The app is mounted with React 18 <code>createRoot</code>, so the store update from <code>ZDn()</code> is batched and the dialog (and the form inside it, which is unmounted while the dialog is closed) only renders <strong>after</strong> the whole <code>setTimeout</code> callback has run. By then the three <code>autofill</code> actions have already written the values into the redux-form state; the form then mounts, <code>componentDidMount</code> calls <code>initialize()</code> with <code>lease = null</code>, and redux-form's INITIALIZE reducer replaces <code>values</code> with the new (empty) initial values. Result: empty dialog. This is deterministic – it does not depend on browser or timing.</p><p><br></p><p>The same action/form code is present in the 3.0.151 and 2.4.220 bundles, so this is not a 3.0.159 regression; the ordering assumption (dialog renders synchronously before the autofills) is what stopped holding.</p><p><br></p><p><strong>Fix (verified on a live 3.0.159 instance)</strong></p><p><br></p><p>Minimal: let the autofilled values survive the initialize:</p><pre class="ql-syntax" spellcheck="false">this.props.initialize({ ... }, false, { keepValues: true });
</pre><p>Cleaner: don't race the mount at all – put the lease data into the dialog state when opening (e.g. <code>KDn({ serverName, address, mac })</code> with an explicit "create" flag instead of <code>null</code>), so <code>componentDidMount</code> initializes from it and no <code>setTimeout</code> is needed.</p><p><br></p><p><strong>Suggestion while you're there</strong></p><p><br></p><p>Prefill <em>Lease ID</em> from the lease hostname when it passes the field's own validation (<code>^[\w\-.]+$</code>), e.g. by replacing whitespace/invalid characters with <code>-</code>. Most hostnames are valid IDs and it saves retyping.</p><p><br></p><p><strong>Workaround for other users until it's fixed</strong></p><p><br></p><p>Type the four fields by hand from the row (select the server explicitly – the preselected one is just the first in the list), or create the static mapping on the router itself (Services → DHCP Server → View Leases → Map Static IP), or via the API: <code>POST /nms/api/v2.1/devices/erouters/{deviceId}/dhcp/leases</code> with <code>{"serverName","leaseId","address","mac"}</code>.</p>]]></description>
            <link>https://community.ui.com/questions/UISP-3-0-159---Make-static-on-a-dynamic-DHCP-lease-EdgeRouter-opens-an-empty-DHCP-Lease-dialog---ro/13ab5aa5-53a7-408d-9063-1f4c9b4a4948</link>
            <guid isPermaLink="false">13ab5aa5-53a7-408d-9063-1f4c9b4a4948</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[cremenescu]]></dc:creator>
            <pubDate>Thu, 10 Sep 2026 15:05:54 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Connecting a (new/old) CRM subscriber to an existing UISP Network site]]></title>
            <description><![CDATA[<p>I'm probably missing something obvius but I'm trying to connect a (new/old) CRM subscriber to an existing UISP Network site but... I can't find a way to do it.</p><p><br></p><p>How do I do that? There has to be a way to do it apart from starting all over with a new site/location (including spending hours on fixing the topology when third party equipment is involved and losing all statistics)!</p>]]></description>
            <link>https://community.ui.com/questions/Connecting-a-new-old-CRM-subscriber-to-an-existing-UISP-Network-site/5ae1bcd1-66c1-4d85-802c-4f1a9abfccd2</link>
            <guid isPermaLink="false">5ae1bcd1-66c1-4d85-802c-4f1a9abfccd2</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[ahlund]]></dc:creator>
            <pubDate>Mon, 07 Sep 2026 15:29:28 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP not updating M5 devices]]></title>
            <description><![CDATA[<p>Hello.</p><p><br></p><p>My self-hosted UISP refuses to update M5 CPEs. This applies to both M5 CPEs connected to AC sectors AND M5 sectors. AC CPEs connected to AC sectors work without an issue. In the update tab it simply says "Same version as AP", however it is not same (for example CPE x.6 while AP is x.24). Attaching a screen of an example.</p><img src="https://img.community.ui.com/2c1dd112-3e53-4331-a7e2-9b6b922ccd96/questions/718cc5a4-1687-4857-810f-c2f272ce4016/1d21a841-ef79-4878-b723-ed89547f7481" style="width: 100%;object-fit: cover;height: 205px" /><p>While I don't have a lot of M5 devices, so manual upgrading wouldn't take a huge load of time, I'd obviously still prefer for them to take place automatically during the night.</p><p><br></p><p>I'm not sure whether this is an issue or my end or an issue in the UISP application, so I'd love to hear some information about this.</p>]]></description>
            <link>https://community.ui.com/questions/UISP-not-updating-M5-devices/718cc5a4-1687-4857-810f-c2f272ce4016</link>
            <guid isPermaLink="false">718cc5a4-1687-4857-810f-c2f272ce4016</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[JonJadams3]]></dc:creator>
            <pubDate>Mon, 07 Sep 2026 09:59:30 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[BILLING service reactivation BuG]]></title>
            <description><![CDATA[<p><span class="mention" data-id="1814fd48-e64f-441e-9bf8-735b64ce0d25" data-value="UI-Team" data-denotation-char="@"><span contenteditable="false"><span class="ql-mention-denotation-char">@</span>UI-Team</span></span> </p><p>Found a bug in customer service reactivation.</p><p><br></p><p>When an expired or ended service is reactivated, the service does not reactivate successfully. The issue is related to the <strong>discount start and end dates</strong>.</p><p><br></p><p>For the reactivation to work, the <strong>discount start date and end date must either be set to the current date, a future date, or left unset entirely</strong>. If the dates are set to a past date, the reactivation fails.</p><p><br></p><p>Even when <strong>“No Discount”</strong> is selected, the system still picks up and validates the discount dates, which causes the reactivation to fail.</p><p>During the reactivation process, <strong>no error message is displayed</strong>. Instead, the page simply loops back to the reactivation page, giving no indication of what went wrong.</p><p><br></p><p>The underlying error and actual cause of the issue can <strong>only be viewed through the browser's Developer Mode/Developer Tools</strong>. There is no visible error presented in the application itself.</p><p><br></p><p><br></p><p>Version: 3.0.159</p>]]></description>
            <link>https://community.ui.com/questions/BILLING-service-reactivation-BuG/0b26fa74-83ab-4341-a2f4-6db842394951</link>
            <guid isPermaLink="false">0b26fa74-83ab-4341-a2f4-6db842394951</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[mike_leash]]></dc:creator>
            <pubDate>Sun, 06 Sep 2026 11:10:54 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Abuse logs]]></title>
            <description><![CDATA[<p>Is there a chance to see the full log? Or is data protection necessary for abusers? I can not find a log file including 146.70.52.244</p><p>on my selfhosted UISP (VPS Debian 13).</p><p><br></p><pre class="ql-syntax" spellcheck="false">Warning 'adm...' failed to log in to UISP from 146.70.52.244 Today 1:06
Warning '3as...' failed to log in to UISP from 146.70.52.244 Yesterday 23:42
Warning 'arc...' failed to log in to UISP from 146.70.52.244 Yesterday 22:15
Warning 'ara...' failed to log in to UISP from 146.70.52.244 Yesterday 21:31
Warning 'aop...' failed to log in to UISP from 146.70.52.244 Yesterday 20:02
Warning 'Adm...' failed to log in to UISP from 146.70.52.244 Yesterday 19:18

</pre>]]></description>
            <link>https://community.ui.com/questions/Abuse-logs/21f7c0db-17b1-48cc-9762-d97d4a0947a0</link>
            <guid isPermaLink="false">21f7c0db-17b1-48cc-9762-d97d4a0947a0</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[otto58]]></dc:creator>
            <pubDate>Wed, 26 Aug 2026 06:42:18 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Devices constantly disconnect and reconnect making the logs unusable]]></title>
            <description><![CDATA[<p>Hello.</p><p><br></p><p>I'm facing a problem where the system log is absolutely flooded with devices disconnecting and reconnecting to the UISP application (self-hosted version). I can confirm that during those short outages UISP has connectivity with the devices (pinging from the host goes through).</p><p><br></p><p>I really wish to utilise the system logs in a meaningful way for our wireless clients, such as getting to them and fixing a problem before they reach out to us about it, but in the current state it is near impossible to do so.</p><p><br></p><p>So far I've tried increasing the ping interval from 30 seconds to 120 seconds but that doesn't do much. The network traffic doesn't go past a megabit per second (outside of update time), so I don't think the connection is oversaturated.</p><p><br></p><p>Is this a known bug in the self-hosted UISP application or maybe there is something wrong with the devices? Has anyone else had the problem and perhaps found a fix? Thanks a lot</p>]]></description>
            <link>https://community.ui.com/questions/Devices-constantly-disconnect-and-reconnect-making-the-logs-unusable/57f96f7b-fdb9-474e-8066-b0604d034847</link>
            <guid isPermaLink="false">57f96f7b-fdb9-474e-8066-b0604d034847</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[JonJadams3]]></dc:creator>
            <pubDate>Tue, 25 Aug 2026 07:57:49 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP Plan Price Change - Additional Option]]></title>
            <description><![CDATA[<p><span class="mention" data-id="1814fd48-e64f-441e-9bf8-735b64ce0d25" data-value="UI-Team" data-denotation-char="@"><span contenteditable="false"><span class="ql-mention-denotation-char">@</span>UI-Team</span></span></p><p><br></p><p>Hi,</p><p>Currently, when changing the price of a plan, the change can either be applied <strong>immediately</strong> or from a <strong>predefined date</strong>.</p><p>This can result in invoice adjustments where the price change takes effect partway through a customer's existing billing period. In Australia, this is generally not the preferred approach. Pricing changes are typically implemented from the customer's <strong>next clear invoice period</strong>, rather than requiring a mid-cycle adjustment.</p><p>It would be extremely useful if a plan price change could include an option to:</p><blockquote><strong>Apply the new price from the next invoice billing period for each customer.</strong></blockquote><p>For example, if a customer's billing date is the 15th of each month, changing the plan price would automatically apply the new price from their next billing period beginning on the 15th. A customer billing on the 24th would have the change applied from their next billing period beginning on the 24th.</p><h3><br></h3><h3>Current workaround</h3><p>At present, the workaround requires us to:</p><ol><li>Create a new, identical plan with the new pricing.</li><li>Manually locate each customer using the existing plan.</li><li>Change each customer's plan individually.</li><li>Set the effective date to their next invoice period.</li></ol><p>This process becomes <strong>extremely time-intensive</strong> as we have to make several thousand plans adjustments 1-3 times per year.</p><h3><br></h3><h3>Requested functionality</h3><p>Ideally, when changing a plan price, we would have an option such as:</p><ul><li><strong>Apply immediately</strong></li><li><strong>Apply from a specific date</strong></li><li><strong>Apply from each customer's next billing period</strong></li></ul><p>Selecting <strong>“Apply from each customer's next billing period”</strong> would automatically schedule the price change for each customer based on their individual billing cycle.</p><p>This would eliminate the need to create duplicate plans and manually update every customer, while also avoiding unnecessary mid-cycle invoice adjustments.</p><p>We would greatly appreciate this functionality being considered. It would make managing large numbers of customers and implementing standard annual pricing, and ad-hoc changes significantly more efficient.</p><p><br></p><p>Thanks.</p><p><br></p><p><br></p>]]></description>
            <link>https://community.ui.com/questions/UISP-Plan-Price-Change-Additional-Option/0aa4afdc-5327-48e3-845d-553a67810498</link>
            <guid isPermaLink="false">0aa4afdc-5327-48e3-845d-553a67810498</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[UplinkMe]]></dc:creator>
            <pubDate>Sun, 23 Aug 2026 09:34:58 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP Feature Request - Hide Closed Customer Services (customer account view)]]></title>
            <description><![CDATA[<p><span class="mention" data-id="1814fd48-e64f-441e-9bf8-735b64ce0d25" data-value="UI-Team" data-denotation-char="@"><span contenteditable="false"><span class="ql-mention-denotation-char">@</span>UI-Team</span></span> </p><p><br></p><p>Hi,</p><p>I'm noticing that we're starting to have some customers with a large number of closed services in UISP.</p><p>We still need this historical information to remain available and accessible. However, we don't necessarily need all of the closed services displayed alongside the active services on the main customer account view.</p><p>As the number of closed services increases, the customer account page can become quite cluttered and display a significant amount of information that isn't currently relevant to the customer.</p><p>Could we please request a couple of small features to address this?</p><h3>1. Global default setting for closed services</h3><p>An option to globally select the default view for closed services:</p><ul><li><strong>Hide closed services by default</strong></li><li><strong>Display closed services by default</strong></li></ul><p>When opening a customer account, the selected global default would determine whether closed services are displayed.</p><h3>2. Display / hide closed services button</h3><p>Within an individual customer account, it would be useful to have a simple button or toggle allowing the user to:</p><p><strong>Display Closed Services</strong></p><p>or</p><p><strong>Hide Closed Services</strong></p><p>For example, if the global default is set to <strong>hide closed services</strong>, the customer account would initially display only active services.</p><p>The user could then select <strong>Display Closed Services</strong> when they need to review historical services.</p><p>Once they leave the customer account, the view would return to the configured global default. Therefore, each time a customer account is opened, the closed services would either be hidden or displayed according to the global setting.</p><h3>Suggested default behaviour</h3><p>I would imagine that most users would prefer <strong>closed services to be hidden by default</strong>, with the ability to quickly select <strong>Display Closed Services</strong> when historical information is required.</p><p>This would keep the main customer account view considerably cleaner while ensuring that <strong>no historical service information is removed or made inaccessible</strong>.</p><p>It seems like a relatively small UI change that could make customer accounts with a large service history much easier to manage.</p><p>Thanks.</p><p><br></p><p><br></p><p><br></p>]]></description>
            <link>https://community.ui.com/questions/UISP-Feature-Request-Hide-Closed-Customer-Services-customer-account-view/956ba6c7-e3b9-4445-ba64-fad75821cc5a</link>
            <guid isPermaLink="false">956ba6c7-e3b9-4445-ba64-fad75821cc5a</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[UplinkMe]]></dc:creator>
            <pubDate>Sun, 23 Aug 2026 08:58:37 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Filter logs in System Logs->Network]]></title>
            <description><![CDATA[<p>Hello.</p><p><br></p><p>Is it possible to filter the logs found in the network section in UISP webUI?</p><p><br></p><p>For example, I want to filter out logs where the speed of an interface dropped from 1000 to 100, so in the Search section I type in "100" but this results in only showing devices that have "100" in their name. Is the search function any useful outside of the predefined categories (found on the right side) and device names?</p><p><br></p><p>Thank you a lot</p>]]></description>
            <link>https://community.ui.com/questions/Filter-logs-in-System-Logs-greaterNetwork/b0102dc7-7acd-4a57-9c3c-e32c60688abe</link>
            <guid isPermaLink="false">b0102dc7-7acd-4a57-9c3c-e32c60688abe</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[JonJadams3]]></dc:creator>
            <pubDate>Thu, 20 Aug 2026 11:31:02 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Advanced notifications in UISP]]></title>
            <description><![CDATA[<p>Hello.</p><p><br></p><p>I've migrated a few hundred devices over from AirControl to UISP (self-hosted) and I'm currently looking for the ability to have more advanced notifications. Examples of those would be: Link Capacity of a station goes below X%, port speed drops from gigabit to fasteth or signal suddenly drops below XdBm.</p><p><br></p><p>Right now, the notification section only offers a very small amount of options regarding that. Will there be any update regarding that somewhat soon or perhaps there's another way I could achieve what I want?</p><p><br></p><p>Thank you a lot.</p>]]></description>
            <link>https://community.ui.com/questions/Advanced-notifications-in-UISP/6f5c0d08-c9f7-46c3-a769-272993f32fd0</link>
            <guid isPermaLink="false">6f5c0d08-c9f7-46c3-a769-272993f32fd0</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[JonJadams3]]></dc:creator>
            <pubDate>Tue, 18 Aug 2026 12:16:05 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP device password issue after migrating to new server]]></title>
            <description><![CDATA[<p>I wonder if anyone can help please? I'm migrating my UISP devices (approx 1100 devices) from one server to a new build self hosted server. I'm doing the process manually, site by site. All going well with the first 20 or so devices;</p><p>Old server&gt;Select device&gt;go to migration and enter to UISP key of new server - on new server adopt the device then go into password and set password (password vault key is uploaded and workiing ok)</p><p>The last 5 or so devices I've tried to migrate - on the new server when I click password I get the message:</p><p>"there was an error getting the password. is your vault key correct" - which makes me think theirs a vault key issue. If click on the IP of that device to connect to it, it logs me in automatically to the device control interface so the vault obviously has the details stored correctly.</p><p>If I try to change the password on the device it won't let me as I don't know the current password.</p><p>I've rebooted device and server but no luck.</p>]]></description>
            <link>https://community.ui.com/questions/UISP-device-password-issue-after-migrating-to-new-server/78c6edc7-7cc4-438f-9b88-6d5cbfe6ec31</link>
            <guid isPermaLink="false">78c6edc7-7cc4-438f-9b88-6d5cbfe6ec31</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[SansSouci007]]></dc:creator>
            <pubDate>Sat, 15 Aug 2026 15:33:26 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[UISP: Invoicing]]></title>
            <description><![CDATA[<p>Hello,</p><p>In UISP currently, when a customer makes a payment, it appears to be applied to the newest invoice allowing a open older invoice to go unpaid.  Any way to make it pay the oldest first?  A settling somewhere I have not found?  We are hosted on the UI server if that matters.</p><p>Thanks</p>]]></description>
            <link>https://community.ui.com/questions/UISP-Invoicing/07a10a8b-9b0e-4a34-9bc8-382bd371bc2a</link>
            <guid isPermaLink="false">07a10a8b-9b0e-4a34-9bc8-382bd371bc2a</guid>
            <category><![CDATA[uisp-app]]></category>
            <dc:creator><![CDATA[WS386]]></dc:creator>
            <pubDate>Sun, 09 Aug 2026 20:38:59 GMT</pubDate>
        </item>
    </channel>
</rss>