Possibly since the last versions of 4.6 but certainly in 4.7 we're unable to select any profiles for the online registration screen for events. Even for a new event we get the "The selected profile is using a custom field which is not assigned to the "Event" being configured" warning, and we can see only two profiles (Discount Codes and End Dates) - we get this warning even though at this stage we haven't picked any profile.

This is Joomla 3.4.8 and Civi 4.7.1. It's a default Joomla template and I've removed all Civi extensions for the moment. I'm accessing as a SuperUser so it isn't a permissions thing.

Unfortunately the demo server is running Civi 4.6 so I can't try to replicate the issue there.

Any suggestions where I should look?

  • Looking at firebug reporting there is a GET request for the relevant data about the profiles which appears to be returned successfully, but for some reason it is not then displayed to the user.
    – Ed P
    Feb 13 '16 at 0:18
  • I have a related problem "The selected profile is using a custom field which is not assigned to the "Event" being configured." The profile is for event participants and includes individual, contact and participant fields. It will display but edit button not working, and dedupe rules do not seem to work. I do not have civirules installed. Mar 15 '16 at 16:52
  • I have had the same problem with 4.6 and hoped that upgrading to 4.7 would solve it. No such luck. May 18 '16 at 18:52

I had a very similar issue and it was caused by CiviRules. I disabled CiviRules and it worked fine.


This is a bug in CiviCRM. A client of ours had this exact situation, and I opened issue CRM-20419.

TLDR: I wrote a fix here. More technical discussion is below.

The problem is that the profile selector is populated by a jQuery plugin that checks arrays and strings to see if they're empty by using a method designed for checking whether objects are empty. The documentation for jQuery.isEmptyObject() explains that it may act inconsistently when used with arguments that aren't plain objects.

In this case, it appears that most of time, it returns true when evaluating an empty string or array, but in our client's case, it was returning false.

There's really no reason to be using a fancy jQuery method to see if an array or string is empty: the length property will be 0 if so. The fix linked above just replaces $.isEmptyArray() with checking the variable's length whenever the variable isn't a plain object.


I'm running CiviCRM 4.7.15 on Joomla 3.6.5 Not running CiviRules. I have the same problem. I can create profiles that I can use in contribution pages for memberships but, if I enable online registration for an event or for an event template, only the pre-existing, default profiles show up. This means that I cannot collect custom data from event registrants.

  • This is not exactly an answer :-( And to make it useful as a question, either explain exactly what you have in the Profile that is not showing or even better clarify if you have replicated on a Demo site.
    – petednz - fuzion
    Mar 16 '17 at 1:33
  • As I indicated it isn't part of a profile, its the entire profile. I want to collect custom data fields from my members when the register for events that I create. To that end I have created a profile containing those fields. When I enable online registration for the event, the profiles drop-down list does not include the profile that I created. Finally, I do not have a demo site, I have a site that I am developing in a sub-domain. It will be transferred to my production site when I get it working. Mar 17 '17 at 17:42
  • Paul - sorry for not being clearer. By Demo site i meant eg dmaster.demo.civicrm.org as it can be useful to others to know if this can be replicated on a clean standard set up.
    – petednz - fuzion
    Mar 17 '17 at 19:06
  • I think I have figured out what the problem is. I have created some custom fields to contain data that we keep about our members. One of these is our unique 'Club Member Number'. This is simply a 9 digit number with 4 digits for year, 2 digits for month and 3 digits for a sequence number. It tells us the year and month the member joined and the sequence portion simply serves to ensure they are always unique. We have been using this sytem for 14 years. In order to be able to associate this with our members, I created the custom data field and indicated it was to be used for memberships. All fin Mar 18 '17 at 23:13
  • All fine except that if I want to draw on that information to validate the membership of someone who wishes to register for one of our 'member only' events, I can't use it because it isn't designated for use by events, and apparently can't be. Its either one or the other. This really reduces the usefulness of custom data fields, in my opinion, unless there is a way of capturing this information so that it can be used anywhere in the system. I believe I can work around this by using the Joomla ACL to make registration availble only to designated groups and using CiviRules to manage the ACL. Mar 18 '17 at 23:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.