|
BLOG
|
July 23, 2026: v1.2.1 updates the widget for Experience Builder 1.21 compatibility, with the manifest and package versions bumped to 1.21 and a widget-level tsconfig added for cleaner editor type resolution.
... View more
a week ago
|
1
|
0
|
41
|
|
BLOG
|
7/23/26: Experience Builder 1.21 compatibility (v1.0.2) EB Developer Edition 1.21 (JS API 5.x) broke parts of the widget UI. All resolved below. The widget remains compatible with 1.20. - Fixed the measurement panel layout in 1.21: the label and value ran together on one line ("Distance378.15 ft") and the panel lost its padding and was cut off. The panel is now styled independently of Esri's internal class names, so it renders correctly on both versions and will survive future Esri DOM changes. - Fixed What's Here popup styling in 1.21: list rows, the Back and Zoom to buttons, and links rendered unstyled because the popup now places content inside a shadow root that page-level stylesheets cannot reach. Styles are now applied directly to the popup content. The resizable popup also works across the 1.21 shadow DOM boundary. - Internal modernization for JS API 5.x: module loading migrated from the global AMD require to the Experience Builder module loader, property watching migrated to reactiveUtils, and length/area calculations fall back to the new geometry operators automatically if Esri removes geometryEngine in a future release. - Developer experience: added a widget-level tsconfig.json and suppressed TypeScript false positives that appeared in Visual Studio and VS Code after 1.21 relocated several type packages. Editing only, no runtime impact.
... View more
a week ago
|
1
|
0
|
82
|
|
IDEA
|
Using the Rebuild Address Locator GP tool (arcpy.geocoding.RebuildAddressLocator), not delete-and-recreate. The .loc files stay put and just get reindexed. Since a running geocoding service holds file locks on the .loc, the script stops the service first, rebuilds, then starts it back up. Per composite: Check the service's realTimeState through the Admin REST API If it's STARTED, stop it to release the locks Rebuild the participating locators first Rebuild the composite last (otherwise it indexes stale participant data) Refresh the token and restart the service
... View more
a week ago
|
0
|
0
|
99
|
|
IDEA
|
@StevenFama this has been a pain point for me for years, but I don't think there is a way manually. I think your best route is to script the rebuild which remembers the settings. I posted a generalized script that I use to rebuild my composite locator on a weekly basis at the link below if it helps. https://github.com/brianmcleer/Python/tree/main/arcgis-locator-rebuilder
... View more
a week ago
|
0
|
0
|
104
|
|
DOC
|
@HeatherWidlund, this site (https://www.sagis.org/) by @KeyHunter is using this widget amongst other custom widgets.
... View more
a week ago
|
0
|
0
|
172
|
|
BLOG
|
7/21/26: Fixed BUG reported and fixed by @ncramer11 where "Keep All (Merge)" was clearing the map before the new drawings got saved, so it silently dropped them instead of merging. This patches handleMergeDrawings to save the new drawings into storage first, then merge." Add live measurements to segement labels thanks to idea from @JacobHildebrand Add function to preset circle size before creation.
... View more
a week ago
|
1
|
0
|
113
|
|
POST
|
You're welcome @dsinha. If you have an IT Network/Support team I would probably ask them to check firewall settings/port settings/etc. (well beyond my skillset).
... View more
2 weeks ago
|
0
|
0
|
287
|
|
POST
|
Hello @dsinha, while not being able to dig in too deep, I am getting many browser console errors when I try to load the app which is probably why some show and some don't. It also might explain if you can seem them on your internal network vs a public device. It might be a firewall setting on your network or a sharing setting in Portal. content.js:2 Uncaught Error: Minified React error #299; visit https://reactjs.org/docs/error-decoder.html?invariant=299 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
at n.createRoot (content.js:2:127887)
at content.js:2:141096
at content.js:2:141166
at content.js:2:141169
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'Item does not exist or is inaccessible.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
await in K
l @ init.js:58
await in l
request @ init.js:484
(anonymous) @ init.js:595
Promise.then
load @ init.js:595
load @ init.js:332
q.load @ layersLoader.js:14
loadFromPortal @ init.js:1141
await in loadFromPortal
load @ init.js:1258
load @ init.js:332
_createLayerView @ init.js:2627
_doWork @ init.js:2621
u @ init.js:202
(anonymous) @ init.js:206
script
t.injectUrl @ init.js:29
Oa @ init.js:27
p @ init.js:5
(anonymous) @ init.js:14
Pb @ init.js:24
Z @ init.js:14
(anonymous) @ init.js:28
p @ init.js:5
Ub @ init.js:28
Ra @ init.js:26
(anonymous) @ init.js:30
script
t.injectUrl @ init.js:29
Oa @ init.js:27
p @ init.js:5
(anonymous) @ init.js:14
Pb @ init.js:24
Z @ init.js:14
T @ init.js:15
Ia @ init.js:15
(anonymous) @ init.js:1223
GroupLayer @ init.js:1223
p @ init.js:1211
r @ init.js:1209
(anonymous) @ init.js:1208
h @ init.js:1208
(anonymous) @ WebMap.js:51
Promise.then
t @ WebMap.js:51
r @ WebMap.js:53
d @ WebMap.js:52
await in d
a.loadFromSource @ WebMap.js:54
load @ WebMap.js:11
load @ init.js:332
(anonymous) @ index.js:1
o @ index.js:1
Promise.then
u @ index.js:1
(anonymous) @ index.js:1
Ee @ index.js:1
createMap @ index.js:1
(anonymous) @ index.js:1
(anonymous) @ index.js:1
Me @ index.js:1
ready @ index.js:1
(anonymous) @ index.js:2
Promise.then
(anonymous) @ index.js:2
Promise.then
createDataSource @ index.js:2
createDataSourceByUseDataSource @ index.js:2
createDataSource @ index.js:137
componentDidMount @ index.js:137
ki @ react-dom.js:2
bi @ react-dom.js:2
yi @ react-dom.js:2
(anonymous) @ react-dom.js:2
ws @ react-dom.js:2
ls @ react-dom.js:2
S @ react-dom.js:2
T @ react-dom.js:2
postMessage
x @ react-dom.js:2
F @ react-dom.js:2
n.unstable_scheduleCallback @ react-dom.js:2
Ps @ react-dom.js:2
(anonymous) @ react-dom.js:2
ws @ react-dom.js:2
is @ react-dom.js:2
Hl @ react-dom.js:2
(anonymous) @ react-dom.js:2
script
C.createScript @ init.js:1
C.instantiate @ init.js:1
C.instantiate @ init.js:1
C.instantiate @ init.js:1
window.SystemJS.constructor.instantiate @ init.js:1
(anonymous) @ init.js:1
Promise.then
f @ init.js:1
(anonymous) @ init.js:1
Promise.then
C.import @ init.js:1
o.import @ init.js:1
(anonymous) @ index.js:2
(anonymous) @ index.js:2
o @ index.js:2
s @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
Yc @ index.js:2
(anonymous) @ index.js:2
Promise.then
(anonymous) @ index.js:2
(anonymous) @ index.js:2
Yc @ index.js:2
loadRawClass @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
Yc @ index.js:2
loadWidgetClassByUri @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
Yc @ index.js:2
loadWidgetClass @ index.js:2
loadWidgetClass @ layout-runtime.js:1
componentDidMount @ layout-runtime.js:1
ki @ react-dom.js:2
bi @ react-dom.js:2
yi @ react-dom.js:2
(anonymous) @ react-dom.js:2
ws @ react-dom.js:2
ls @ react-dom.js:2
S @ react-dom.js:2
T @ react-dom.js:2
postMessage
x @ react-dom.js:2
F @ react-dom.js:2
n.unstable_scheduleCallback @ react-dom.js:2
Ps @ react-dom.js:2
rs @ react-dom.js:2
ts @ react-dom.js:2
Ku @ react-dom.js:2
(anonymous) @ index.js:72
Promise.then
(anonymous) @ index.js:72
ri @ react-dom.js:2
Ss @ react-dom.js:2
(anonymous) @ react-dom.js:2
ws @ react-dom.js:2
is @ react-dom.js:2
Hl @ react-dom.js:2
(anonymous) @ react-dom.js:2
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Parks & Recreational Areas', id: '19e22095fe1-layer-35') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Parks & Recreational Areas', id:'19e22095fe1-layer-35' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Borough Public Parking Lots', id: 'BoroughPublicParkingLots_Carlisle_4378') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Borough Public Parking Lots', id:'BoroughPublicParkingLots_Carlisle_4378' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Rail Roads', id: 'RailRoads_Carlisle_2385') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Rail Roads', id:'RailRoads_Carlisle_2385' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Parking Kiosks', id: 'ParkingKiosks_Carlisle_3951') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Parking Kiosks', id:'ParkingKiosks_Carlisle_3951' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Municipal Boundary', id: 'MunicipalBoundary_Carlisle_7102') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Municipal Boundary', id:'MunicipalBoundary_Carlisle_7102' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Trash/Recycling Routes', id: '196e9f367e6-layer-53') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Trash/Recycling Routes', id:'196e9f367e6-layer-53' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Airport Surface Zones', id: 'AirportSurfaceZones_Carlisle_1824') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Airport Surface Zones', id:'AirportSurfaceZones_Carlisle_1824' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Fire Hydrants', id: 'Hydrants_Carlisle_8635') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Fire Hydrants', id:'Hydrants_Carlisle_8635' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Historic Preservation District', id: 'HistoricPreservationDistrict_Carlisle_1629') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Historic Preservation District', id:'HistoricPreservationDistrict_Carlisle_1629' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Bicycle Lanes', id: 'BicycleLanes_Carlisle_7571') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Bicycle Lanes', id:'BicycleLanes_Carlisle_7571' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Bicycle Routes', id: 'BicycleRoutes_Carlisle_8358') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Bicycle Routes', id:'BicycleRoutes_Carlisle_8358' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
init.js:135 [esri.layers.FeatureLayer] #load() Failed to load layer (title: 'Major Surface Water, Letort Spring Run', id: '19783aa882f-layer-53') {error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:950
init.js:135 [esri.views.LayerViewManager] Failed to create layerview for layer title:'Major Surface Water, Letort Spring Run', id:'19783aa882f-layer-53' of type 'feature'. {layer: w, error: f}
f @ init.js:135
_log @ init.js:138
error @ init.js:136
(anonymous) @ init.js:2627
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}details: {layer: w, error: f}message: "layerview creation failed"name: "layerview:create-error"[[Prototype]]: c
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
index.js:2 Uncaught (in promise) f {name: 'request:server', details: {…}, message: 'The connection attempt failed.'}
reject @ index.js:2
error @ index.js:610
K @ init.js:72
experience/?id=37efd…fb8bf2e75263acfb7:1 Uncaught (in promise) f {name: 'layerview:create-error', details: {…}, message: 'layerview creation failed'}
... View more
2 weeks ago
|
1
|
2
|
292
|
|
BLOG
|
Thank you @JacobHildebrand 1. Yes, it is possible please see video below for workflow. 2. I can look at adding live measurement for segment labels.
... View more
2 weeks ago
|
0
|
0
|
130
|
|
BLOG
|
7/17/26: Bugfix: Fixed a regression introduced with the mobile long-press feature that made popup text un-selectable and un-copyable in every Experience Builder app containing this widget. The iOS long-press touch-callout suppression was being applied to the entire MapView container, which also holds the popup DOM; because user-select is inherited in the browser, popups inherited the suppression. The suppression is now scoped to the map canvas surface only, so long-press behavior is unchanged and popup text is selectable and copyable again. Existing live sessions are cleaned up on upgrade without needing a map remount.
... View more
2 weeks ago
|
0
|
0
|
113
|
|
BLOG
|
@KeyHunter made an update this morning, please try again using most recent version on this blog post.
... View more
2 weeks ago
|
0
|
0
|
324
|
|
BLOG
|
Thank you @KeyHunter, and to confirm you are using the OOTB search widget?
... View more
2 weeks ago
|
0
|
0
|
329
|
|
BLOG
|
7/17/2026: Legend system overhaul Legend now reads the live Legend widget on the page, exactly what the user sees: layer order, group nesting, visibility, and sublayer hierarchy, with a Legend source setting to bind a specific widget or detect automatically High-resolution symbology: map service swatches fetched from the REST legend at 288 DPI and matched contextually to legend rows; vector swatches supersampled; symbols draw aspect-true (line swatches stay thin, markers stay round), no more stretched or blank patches New adjacent panel placements (right, left, bottom): the map frame shrinks to make room, panel width is content-driven with balanced columns, the panel trims around layout furniture like corner logos, and the authored frame border wraps map and legend together so Pro-designed compositions stay intact Multi-page legends: an "Additional pages (PDF only)" placement paginates the legend across as many full sheets as needed at full font size, with continuation headings and the same sheet size and orientation as the map page Smart fit intelligence: the widget measures the actual legend live and warns with specifics ("87 items; about 23 will not fit"), auto-defaults to additional pages when items would drop (one-click revert, and it reverts itself as layers are toggled off), and flags any truncated export on the result row Long labels wrap to three lines before an honest ellipsis; widow control keeps headings with their items Legend on/off toggle available to admins per layout in settings and to end users in the widget, plus a runtime placement selector Scale bars Full 12-style catalog including Alternating (ticked), Line with labels below, and center-axis Scale line, each with an accurate preview tile True Pro dual scale bars: Double alternating and Double hollow always print two measurements sharing the zero point, with the second unit auto-selected as the natural complement (miles-feet, meters-kilometers) and overridable Collision-proof unit labels in every style and both single and dual modes Usability and workflow Runtime user overrides for legend placement and grid type, gated by admin visibility controls Author and Copyright fields now always print, in a clean cartographic credits line in the bottom page margin when the layout has no text element consuming them "Apply to all layouts" buttons for overview, grid, and legend settings; re-importing a .pagx now updates the matching layout in place and preserves its settings Live print-extent preview tracks the legend panel, map-only mode, and explicit pixel dimensions before the first export Performance pass (concurrent legend build and capture, swatch caching, parallel extraction) and a WCAG accessibility pass across all controls
... View more
2 weeks ago
|
1
|
0
|
116
|
|
BLOG
|
@KeyHunter would you mind messaging me a video of the first query bug? I have not seen a thread regarding 1.23 anywhere. I know 1.21 should be coming out by end of month.
... View more
2 weeks ago
|
0
|
0
|
346
|
|
BLOG
|
7/16/26: Performance update: layer connections are cached across searches, header queries run in parallel with report sections, and PDF libraries load on demand. Also fixes a timing bug where the first search of a session could return an empty report. Please report any issues on this blog post. @KeyHunter please use most current version on this blog posted today (7/16) and let me know if both issues persist.
... View more
2 weeks ago
|
0
|
0
|
366
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | a week ago | |
| 1 | a week ago | |
| 1 | a week ago | |
| 1 | a week ago | |
| 1 | a week ago |
| Online Status |
Online
|
| Date Last Visited |
2 hours ago
|