# Reference geometry unusable if choice/entity list contains any capitalised character

**URL:** <https://forum.getodk.org/t/reference-geometry-unusable-if-choice-entity-list-contains-any-capitalised-character/58592>\
**Category:** Support\
**Tags:** odk-central\
**Created:** [September 24, 2026, 6:52am UTC](https://forum.getodk.org/t/reference-geometry-unusable-if-choice-entity-list-contains-any-capitalised-character/58592 "2026-09-24T06:52:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ahblake](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ahblake/32/22392_2.png) [@ahblake](https://forum.getodk.org/u/ahblake)\
**Post date:** [September 24, 2026, 6:52am UTC](https://forum.getodk.org/t/reference-geometry-unusable-if-choice-entity-list-contains-any-capitalised-character/58592/1 "2026-09-24T06:52:34Z")

</div>

> **tl;dr**
>
> I saw @Edmonds post and was intrigued to try it as I thought that currently reference geometry was a single parameter only based on earlier discussion
> 
> > [@Display existing geometry when capturing new point/trace/shape on map](https://forum.getodk.org/t/display-existing-geometry-when-capturing-new-point-trace-shape-on-map/57427/53):
> >
> > Just by combining two statements in the parameter column like this: **reference-geometry=${method\_repeat} reference-geometry=tree\_registration** you can call both layers.
> 
> > [@Display existing geometry when capturing new point/trace/shape on map](https://forum.getodk.org/t/display-existing-geometry-when-capturing-new-point-trace-shape-on-map/57427/22):
> >
> > As we've currently specified things, you could choose to use the geometry captured in this session by referencing the repeat OR geometry captured previously by referencing the Entity List but not both. Displaying geometry from multiple sources (which this is a special case of) is out of scope for now but we may take it up at some point, possibly combined with specifying other sources of reference layers (e.g. URL). The XLSForm spec for this becomes tricky!
> 
> But when I went to try it my form kept failing validation even when I reduced the field to one reference layer. A little unpicking and I found this.

**1. What is the issue? Please be detailed.**  
A reference geometry layer cannot contain any upper case characters or it will not validate on upload. This prevents me from using reference geometries as **all** my entity lists have some upper case 😿

Example choice/entity list names:

- ✅ `alllowercase`, `with_underscore`, `with-dash`

- ❌ `Capitalised`, `ALLCAPS`, `endcaP`, `CAP_UNDER`, `CAP-DASH`,

**2. What steps can we take to reproduce this issue?**  
Upload the form that uses internal example choice lists, delete/modify rows to test various case combinations

**3. What have you tried to fix the issue?**  
tested various combinations of upper/lower case with `-` and `_`

**4. Upload any forms or screenshots you can share publicly below.**  
[Reference geometry error.xlsx](https://forum.getodk.org/uploads/short-url/jQCvvnBb0G9BwciBmRV4L3DKOt9.xlsx) (100.3 KB)

---

<div class="post-metadata">

**Author:** ![Lindsay\_Stevens\_Au](https://getodk.b-cdn.net/letter_avatar_proxy/v4/letter/l/e8c25b/32.png) [@Lindsay\_Stevens\_Au](https://forum.getodk.org/u/Lindsay_Stevens_Au)\
**Post date:** [September 29, 2026, 8:30am UTC](https://forum.getodk.org/t/reference-geometry-unusable-if-choice-entity-list-contains-any-capitalised-character/58592/2 "2026-09-29T08:30:54Z")

</div>

Thanks for the report! Possible fix: [https://github.com/XLSForm/pyxform/pull/866](https://github.com/XLSForm/pyxform/pull/866)

---

<div class="post-metadata">

**Author:** ![LN](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ln/32/1605_2.png) [@LN](https://forum.getodk.org/u/LN)\
**Post date:** [October 8, 2026, 11:37pm UTC](https://forum.getodk.org/t/reference-geometry-unusable-if-choice-entity-list-contains-any-capitalised-character/58592/3 "2026-10-08T23:37:20Z")

</div>

@ahblake how urgent is this for you? We've merged @Lindsay_Stevens_Au's fix and are working to schedule the point release to get it out.

---

<div class="post-metadata">

**Author:** ![ahblake](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ahblake/32/22392_2.png) [@ahblake](https://forum.getodk.org/u/ahblake)\
**Post date:** [October 8, 2026, 11:54pm UTC](https://forum.getodk.org/t/reference-geometry-unusable-if-choice-entity-list-contains-any-capitalised-character/58592/4 "2026-10-08T23:54:55Z")

</div>

Not urgent as I don't have a requirement to use reference layers yet. Happy to wait rather than divert resources from other more pressing tasks.
