Username not appearing on the submitted records

Hello Community,

Recently, I have noticed that the records I am submitting from my account, the username is appearing with the records. However, username is missing from the records submitted by the other users. Previously I never experienced this kind of issue. Am I missing anything on my set up process or it is bug of the new version of Aggregate? Please see the screenshot below.

Thanks,
Imran
Untitled

That's not good! When did this start happening? What versions of Collect and Aggregate are you running?

1 Like

Dear Hélène,

Thanks for your prompt response. My collect version is: 1.11.1 and Aggregate: 1.4.15.

Imran

Do the enumerators have a server username set? A metadata username? Both?

Yes, I created username for the enumerators. Not sure about metadata username? How to do that? Previously it just worked with the user username.

A while ago a separate metadata username field was introduced. See here for documentation. This is useful for deployments that use a single server user, use Google Drive as the backend or would like to log a username other than the one used to log into the server for any other reason. On first launch after that change, the server username was copied to metadata username to ensure consistent username preloading for people who wanted to keep receiving the server username. In Collect 1.11 that behavior was further simplified such that if a server username exists it is used as the username preload unless a metadata username exists in which case it overrides the server username.

I see you got blank usernames on Oct 23 and Oct 26 which predate the release of v1.11. I suspect that somehow the copy from server username to metadata username didn't work as expected and enumerators had blank metadata usernames for some time. Did you receive submissions after the update to v1.11? Do they also have blank usernames on Aggregate?

1 Like

Dear Hélène,

Thanks for the update, I will surely find out on their end and let you know.

Thanks,
Imran

Hi @LN,

Recently after field testing a patient supervision tool, I have noticed that one of the username has not appeared on the Aggregate. In addition to the usernames, the phone numbers of all users are missing.

Thanks,
Imran

Thanks for that report. Phone numbers can't generally be read automatically from SIMs so I'm not surprised about that one. If you need the phone numbers you can ask enumerators to enter them in Settings > User and device identity > Form metadata. Or you can enter them yourself for devices and then lock the settings down by setting an admin password. Or finally, you can log device ID (http://xlsform.org/#metadata) which can generally be automatically read and create a lookup list of device IDs and phone numbers.

Do you have any information about the username that's not showing up? What version of Collect is that user running? Is it possible the user has changed the settings in some way?

1 Like

Hi @LN,

Recently I am experiencing this issue of missing user id. On previous versions, I never experienced that issue. The user is using the v1.12.2 of collect. The user hasn't changed anything since I was present during the field trial and as soon as the field trial completed, I have noticed that I can see only one username and another username has not appeared on the entries.

Thanks,
Imran

Hi @A.N.M_AL-IMRAN (and @LN FYI),

Did you ever solve this issue?
I've been seeing the same, also since end of last year sometime for newer enumerators (i.e. newer Collect versions). Both username fields are set on the device, but nothing populates in the form metadata.

We have our own custom server (not Aggregate), so I'm fairly certain it's a phone-side (Collect) issue.

We re-created the issue accidentally on one of our test devices while chasing another issue. I checked the xml files in the odk/instances/ folder on the device and they show a blank <username /> field.

We're doing a little more testing now to see if we can re-create the issue reliably.

The only unusual part of our process is that we create an ODK settings file from another app, which is saved to the /odk/ folder and loaded when ODK opens next. This appears to work fine on our test device (mentioned above) as both username fields show up populated correctly in General Settings.

Update: We've been able to recreate on the same device:

  1. Uninstall ODK Collect
  2. Delete /odk/ folder
  3. Install ODK Collect from Play Store
  4. Load settings from a settings file saved to /odk/collect.settings
  5. Get Blank Form from server (this verifies that Username has actually been loaded)
  6. Fill Blank form and submit.

This gives us a submitted form that has blank <username \> field.

Note 1: Doing the same on some other devices (different make/model) doesn't cause the same issue, but we have seen it before from some users in the field (unknown make/model)

Note2: After the above steps we did the following:
7. Open General Settings
8. Go to User and Device identity -> Form Metadata
9. Edit username, removing the last character, click OK
10. Edit username, add last character again, click OK
11. Fill Blank Form and submit
Now the form does include a populated <username> tag.

The Device in question is a Vodacom Smart Kicka low-end smartphone.
It's running Android 4.4.2

@LN and @Shobhit_Agarwal (I know you worked on settings previously), is it possible that for some reason (on some devices) filling a form after loading settings wouldn't populate the username tag until you "force" another load of the username to RAM by by editing it in General Settings again?

2 Likes

Yes, this is very possible. Thanks so much for all the very detailed information, especially the Android version. I think we should be able to reproduce and hopefully fix it with what you have provided.

1 Like

Dear @Andrew,

Sorry missed your message. Thanks so much for sharing your experience. In fact, I was unable to resolve this issue.

Thanks again,
Imran

@A.N.M_AL-IMRAN how and when do you set the username? Do you fill the setting manually? Also use collect.settings? A QR code?

What Android version(s) have you seen this on?

Hi @LN,

It was back in January. I didn't do the settings manually. Where shall I use collect.settings?

Imran

@A.N.M_AL-IMRAN It would be helpful to know how you set the username on the devices. It sounds like you didn't use collect.settings. Did you go to settings and change it manually?

Dear @LN,

No, I haven't used collect.settings, in fact I do not really know where to do that settings. On settings I just configure the url only, I do not really change much on settings option, I believe I miss lots of features in there.

Thanks again,
Imran