2

I am using civicrm ver. 4.6.2 on Drupal 7; PHP version is 5.3.29, safe mode is off and open_basedir is not set:

When I try to upgrade through extensions manager I get:

WARNING: The downloader may be unable to download files which require HTTP redirection. This may be a configuration issue with PHP's open_basedir or safe_mode.

Unable to extract the extension.

Extension Upgrade Failed Download failed - ZIP file is unavailable or malformed

Also, the scheduled jobs for iatapayments fail:

Entity: Job Action: IatsRecurringContributions Summary Finished execution of Call Job.IatsRecurringContributions API with result: Failure, Error message: API (Job, iatsrecurringcontributions) does not exist (join the API team and implement it!) Details

Parameters parsed (and passed to API method): a:1:{s:7:"version";i:3;}

Full message: Finished execution of Call Job.IatsRecurringContributions API with result: Failure, Error message: API (Job, iatsrecurringcontributions) does not exist (join the API team and implement it!)

I believe problems must be related. Anyone know how to resolve this? I believe my resource directories and urls are configured properly. Everything is in the right place.

enter image description here

4
  • 1
    Can u add your civicrm version and the cms you are running it with Jun 7, 2015 at 23:02
  • Do you have ftp access and could you check wether the Iats payment extension is still there? It looked like your code files might be broken but that is my first guess Jun 8, 2015 at 7:11
  • Thanks. The files are definitely there. Put them there myself. I can't use the extension manager, so I have to manually put the files in place. Jun 8, 2015 at 10:54
  • Still struggling with this :(. The scheduled jobs are there, in their proper place, but the scheduled job cron does not find them. Any thoughts? Other jobs are found and executed, just not those two. Jun 8, 2015 at 19:19

4 Answers 4

6

I was able to reproduce your issue and fix it on my Linux install.

  1. It seems to only happen with Linux, not MacOSX.
  2. I can fix it by changing the filename of the job to be first letter caps only, i.e. not camel case. Don't make any other changes.

Following the advice in various other locations, including civix or related issues, does not fix it (shortening, changing to all lower case, etc.).

I think part of the noise of this issue is related to changes in the upcoming v4 api which are not true of the v3 api that were introduced in 4.6.

My suspicion is that this patch is responsible for breaking things: https://github.com/colemanw/civicrm-core/commit/bfcb4795c83dc61e854f4268ef149b6c761636aa

0
1

There seem to be two issues in the question:

1) Downloads in the extension manager fail on HTTP redirection (which in turn causes the malformed zip issue).

  • It sounds like you already know how to work-around this issue -- by manually putting the files in place. If using this technique, you should do it consistently (for both installation and upgrade).
  • See also: https://issues.civicrm.org/jira/browse/CRM-14126

2) The API call used by the cron job is missing/unknown. This sounds like a bug for which you may want to report, but there are a few areas one might investigate:

  • The current iATS module (v1.3.2) does not advertise compatibility with Civi v4.6. The unreleased master version does (but it's... unreleased).
  • That API action has a long, multiword name. Civi v4.6 tightened the way it handles these kinds of names. https://issues.civicrm.org/jira/browse/CRM-15988
  • That API action has a long, multiword name. Calling that API requires translating from the API name (Job.IatsRecurringContributions) to a filename (api/v3/Job/IatsRecurringContributions.php). This is susceptible to edge-cases involving filename case-sensitivity (where, eg, an API+filename might work in OSX but fail in Linux).
3
  • Hey Tim - thanks for these notes about the 4.6 changes to the API. Early on, I broke the civix naming conventions by starting some of my filenames with lower case (a possibly misguided attempt to adhere to some branding requirements ...), I wonder if that's part of the story? I'll check your links for further clues.
    – Alan Dixon
    Jun 9, 2015 at 13:23
  • The first answer is correct, but the second answer has a few red herrings and should be updated.
    – Alan Dixon
    Jun 9, 2015 at 16:24
  • The downloading of extensions issue has been broken for me for quite some time. If I remember it broke around 4.5 early in that cycle of releases.
    – frTommy
    Jun 11, 2015 at 22:26
0

ad 1) did you do a complete rm -r everything iATS code files that you had downloaded via the Manage Extensions GUI before you unzip-ed the 1.3.2-zip file? Did you add 4.6 to its info.xml file [it only contains labels 4.4 and 4.5]? Did you clear all CiviCRM caches and go back to the Manage Extensions GUI screen and run the database updates [you had mentioned to us you upgraded from well before 1.3.2 - I bet you there are likely some of these to be dealt with].

I think the reason the automated process failed may very well be b/c 1.3.2 is indeed not labeled as compatible with your CiviCRM core - so it's trying to stop you from installing it.

ad 2) I would not recommend git clone master at this point - in addition to working on testing all 21 payment pathways in 4.6.x - Alan is working on adding Direct Payment Method [comes with lots of JS edits in lots of places] and I'm working on adding in some new extensive reporting features. There is just a lot going on right now. And unreleased (not in our test matrix yet).

I'll try and reproduce your issue (installing the 1.3.2 on a 4.6.x) - If I can reproduce it I'll work on that and make it a patch re: scheduled jobs - code edits from 4.4./4.5 to 4.6 - a patch which you would then need to manually apply to your 1.3.2

New:

  1. Try deleting the iATS scheduled jobs from your /civicrm/admin/job?reset=1 - and then manually add them [using the Add New Scheduled Job button]. I just ran iATS 1.3.1 jobs on a 4.6.4ish (see screenshot).

  2. Obviously that's a workaround - we need to dig deeper to find out why these jobs don't survive the upgrade better. Perhaps scheduled jobs get stored elsewhere/differently in the CiviCRM db compared to 4.4/4.5?

enter image description here enter image description here

8
  • K! will try it! Sounds very promising. It occured to me to do that very thing awhile back, just never did. I'll report back in a few... Jun 9, 2015 at 15:08
  • I am getting: "Given API command is not defined" Error. I am putting: "Job" and "IatsRecurringContributions" in the API call fields. i.e. "api.job.IatsRecurringContributions" in the API call. What's wrong? Jun 9, 2015 at 15:27
  • Let me add another screenshot to my post. Jun 9, 2015 at 15:34
  • PS - I just confirmed that adding 1.3.2 to a new D7/4.6.4-ish scheduled the iATS scheduled jobs are working fine on OS X [relevant b/c of Tim's note above]. Jun 9, 2015 at 15:39
  • Still get error. Jun 9, 2015 at 15:50
0

I was having the same iATS Payment issue. I looked at what Alan said, then renamed the Job file name, the actual .php files in the iATS Extension folder (…custom_ext/com.iatspayments.civicrm/api/v3/Job/) and now it works!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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