Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Multiexcerpt include macro
macro_uuid846f10d6-3459-462c-8ce9-b12bb0b90265
nameTechnical Documentation
templateDataeJyLjgUAARUAuQ==
pageCommCare Help Site Design Guidance
addpanelfalse

If you are here is because , then you are probably getting came across the error The message "The case sharing settings for your user are incorrect. This user must be in exactly one case sharing group. Please contact your supervisor. Before we start debugging this error let's " in a CommCare app on a mobile device:

...

Or via Web Apps:

...

Before we can debug this error it's important to understand a few relevant concepts:

  • Case sharing - if an app has Case Sharing enabled, cases are supposed to be shared between users. For more on this, see Case Sharing.

  • Case Ownership - every case in CommCare has an owner that can be a user (web or mobile), a user group or a location, which means that before a case can be created its ownership needs to be decided. The decision of who (or what) should be the owner is normally done by CommCare but can also be done manually, as we will explain later. However, when Case Sharing is enable this process becomes complex for CommCare as the User, the default option, is no longer acceptable.

Let's now interpret the error. Mainly, Case Sharing is enabledand CommCare is responsible for determining the owner of cases but because of some incorrect user configuration or many options available, . However, the user is either configured incorrectly or they are associated with too many locations and/or case sharing groups, so CommCare gets "confused" and throws that error, so potentiallythis error. Often, this could can be solved by setting the ownership manually. An important note here is that, in most of the scenarios this error is directly related with to some design decision made for the app, so before implementing a solution, it's good practice to revisit documentation to ensure that whatever whichever solution is applied it won't break any workflow. Let's see the potential situations

The following is a list of example scenarios that could lead to this error coming up:

...

  1. User is not assigned to a Location or Case sharing group -

...

  1.  without a Location or Case Sharing Group associated to the mobile user,

...

  1.  CommCare is forced to set the ownership to the user

...

  1. . However, setting the ownership to the user will automatically prevent the case from being shared, so CommCare prevents this behavior from happening automatically.

    1. Solution: assign the user to a Location or a Case Sharing Group

  2. User is assigned to more than one case sharing group and/or location - considering that there are many options available, CommCare is unable to decide on who should be the rightful owner

...

  1. , resulting in that same error being thrown. This also applies if the user is assigned to oneCase Sharing Group and one Location when the Organizational Level is set to Own Cases (see more in Setting up Organization Levels and Structure).

    1. Solution: There are two potential approaches here

...

    1. . You can change the configuration of the user

...

    1. so that they are only assigned to a single Case Sharing Group (see more in Mobile Worker Groups) or

...

    1. Location (see more in

...

    1. https://dimagi.atlassian.net/wiki/x/YzPKfw). Alternatively, you set the ownership manually within the form (see below).

  1. User is assigned to a Location that can't Own cases - in this scenario, CommCare sees that the user is assigned to a Location that, according to the configuration of the Organization Level, can't own Cases.

    1. Solution: There are two potential approaches here

...

    1. . You can change the configuration of the location to allow it to own cases (see more in Setting up Organization Levels and Structure), or you can set the ownership manually (see below). You will need to ensure that all cases created within the form settings have an owner_id property set, including any child cases.

  1. User is assigned to a Location with child Locations and View Child Data is Enabled - this is a more complex problem to solve

...

  1. . In this case, it typically appears that the users are correctly configured, and that each one is assigned to a single location.

...

  1. However, since the user has access to data in the child locations as well, the child locations are also considered valid candidates for case sharing, similarly to if the user was actually assigned to multiple locations as outlined above.

...

In this example, we can conclude that Nurse should be able to see cases from their CHWs and also to have their own cases. The error would occur when Nurse tries to create a new case, however, the app should work fine for CHW 1 and 2.

a. Solution: In this case, usually the only viable option is to set the ownership manually (setting a hidden value in the form called owner_id, manually setting it to be the location you need the case to live at, and saving it as a case property). Of course, you could

...

turn the View Child Data option off but this would most likely go against the workflow of the app.

...

  

Setting

...

case ownership manually 

So, at this point it's safe to assume that you have exhausted all other options and decided to set the ownership of the case manually. First we , you need the ID of the owner, this can be achieved either by having the user selecting a Location or a Case Sharing group from a Multiple Choice Lookup Table question or some calculation that returns a single ID. Next, we you need to instruct CommCare to assign the ownership based on that ID, for that we need you have to set in the Case Management, of the form creating the case , a special property called owner_id, this is the property that holds the ID of the owner of the case. In the end you should have something like:Image Removed in the Case Management section of your form. Find more information about this process in Assigning Cases to One of Multiple Locations.