All Activity
- Today
-
Blesta generated thousands of duplicate invoices, but I think I figured out why
Paul replied to Panormitis's topic in Bugs
Also, check Tools > Logs: Cron tab filtering by the word "Create" to list the Create Invoice tasks. I want to know the frequency of this task running (Start Date / End Date) as it should be a full day apart, and click the records to expand to show the output from the run. I want to know if the task is running more often than once a day and if the invoices are created in duplicate across separate runs or within the same run. -
Blesta generated thousands of duplicate invoices, but I think I figured out why
Paul replied to Panormitis's topic in Bugs
Your logs show no errors, but the info log does show the invoice generation. I've replied to your ticket for more information, but this is consistent with what I said earlier that the renew_date may not be being bumped forward which should happen automatically after invoice creation. Any 3rd party extensions or customizations will be suspect, particularly any that tie into events. -
Paul the issue is happening again, I killed the cronjobs and stopped the cronjob from running further. I have the gathered the logs this time. I'll open a ticket in blesta.com for further investigation. The only thing I did is I re enabled maldetect's cron 10 minutes ago, but I don't think that's relevant
-
Most likely the TLD sync task was halting all the other tasks. Before this happened, the customer purchased a service for 23€. What I assume, is that the cronjob never fully completed all the tasks regarding the purchase/invoice and while the other cronjobs were running in parallel, kept generating invoices for the same thing (while being halted again by the TLD sync task), since they thought the procedure was never finalized. Since I have excluded the TLD Sync task and run it via a separate cronjob (which takes 2 hours to complete because it's synchronizing 462 entries), I had no further issues so far. This generated around 11000 duplicate invoices in total, so it was a huge mess to even keep logs or files, so I decided to remove everything (logs/files/database) and restore a weekly backup and then find a solution.
-
tld_sync.php, line 40: set_time_limit(60*60*15) // 15 minutes
Paul replied to Panormitis's topic in Bugs
Thanks, we'll update this per https://dev.blesta.com/browse/CORE-5448 -
Blesta generated thousands of duplicate invoices, but I think I figured out why
Paul replied to Panormitis's topic in Bugs
When a service or domain is invoiced for renewal, the services.renew_date is bumped forward (+ term/period, e.g. 1 year, or 1 month, etc), which prevents it from being invoiced again because Blesta is only looking for services set to renew within a set period of time. I'm curious whether the renew_date was being bumped forward on this service/domain or not. Did all the invoices show the same period/date range on the line items? My guess is that something was preventing the renew date from being bumped forward, there may be some errors in your ../logs_blesta/ logs that could give a clue. Overlapping cron jobs are normally not a problem because Blesta locks the task when it starts it by logging the attempt, then when it's finished it logs the end datetime. Until the end datetime is set, it should not run again. However, it is possible that if multiple cron jobs start at exactly the same time, this may not be detected. In that case you will find in the log_cron table multiple runs that start at the same time and overlap. You should confirm that you have only a single cron job set up for Blesta. The TLD sync task should not interfere with other tasks and we have no other reports of this. This is because each individual task is locked while it is running and cannot run again until the previous run finishes. If the TLD sync task is taking a long time, then you could have another Blesta cron task run, but it should only process tasks that are not currently running and should be started again. Can you provide more information? -
Hello, I'm using Blesta 5.11.3 with PHP 8.3 and OpenLiteSpeed. I'm using also Domain Manager and the Enom domain module. I have activated most TLDs and set TLD pricing sync as well. Out of the blue, one of the customers contacts me and says his Blesta account is filled with duplicate unpaid invoices. I checked the customer's account and he had about 3000 unpaid invoices and Blesta was keep generating more... The same thing was happening to a second customer too. Both of them had one past due invoice, I don't know if that was relevant. When I was stopping the cronjob, the generation of duplicate invoices stopped too, when I was resuming the cronjob the generation of invoices resumed too. I checked the cron logs and it seems the cronjob was taking too long to complete because of TLD pricing sync for the TLDs and essentially the cronjob was never fully completed. The command ps -aux | grep cron was also showing multiple cronjobs of Blesta running simultaneously. At this point everything was a huge mess so I decided to restore a backup. I killed all the cronjob processes and then I went to Settings -> Company -> Automation -> Plugin and unchecked "Domain TLD Synchronization - Synchronize packages with the TLD pricing from their registrar module" Finally the cronjob was able to fully run: Accept Paid Pending Orders Download Tickets Close Tickets Build Mailing Export Send Mass Email Delete Trash Tickets Send Reminders Process Abandoned Orders Transition Quotations Apply Payments to Open Invoices Provision Paid Pending Services Deliver Invoices Exchange Rate Updates Process Service Renewals Unsuspend Services Process Service Changes However I also wanted TLD pricing synchronization to work, without messing anything up, so I decided to make a script to run it as a separate cronjob: <?php // Blesta environment location. define("BLESTA_DIR", "/home/user/domains/domain.com/public_html/blesta"); require BLESTA_DIR . "/vendors/autoload.php"; require BLESTA_DIR . "/index.php"; // Load the TldSync class require_once BLESTA_DIR . "/plugins/domains/lib/tld_sync.php"; // Initialize the TldSync tool $tldSync = new TldSync(); // Optional: define which TLDs to sync. Empty = all. $tlds = []; // e.g., ['.com', '.net'] // Optional: filter by module (e.g., only Enom), or by terms $filters = [ // 'module_id' => 3, // 'terms' => [1, 2] ]; // Try to sync the prices... try { $tldSync->synchronizePrices($tlds, Configure::get("Blesta.company_id"), $filters); echo "Pricing synchronization of TLDs completed successfully!"; } catch (Throwable $e) { echo "Error during pricing synchronization: " . $e->getMessage() . "\n"; } I saved it as sync_tld_prices.php one level above public_html because I don't want it to be accessible by visitors and added a cronjob every 48 hours for it: 0 1 */2 * * /usr/local/bin/php -q /home/user/domains/domain.com/sync_tld_prices.php So far I haven't seen any duplicate invoices again, so hopefully the situation is resolved.
- Yesterday
-
On <blesta_dir>/plugins/domains/lib/tld_sync.php On line 40, you have set: set_time_limit(60*60*15) // 15 minutes According https://www.php.net/manual/en/function.set-time-limit.php the value should have been set in seconds, so the correct would be: set_time_limit(60*15) // 15 minutes. 60*15 = 900 seconds (15 minutes). 60*60*15 = 54000 seconds (15 hours), which is incorrect.
-
Prefill default name servers on order form
Panormitis replied to HostinPK's topic in Feature Requests
Thanks Paul, it would be a nice feature when completed. For now I managed to do what I needed with my SQL query above. - Last week
-
BlestaCMS support has been unresponsive for a while, and many users have experienced similar issues. If you're looking for an all-in-one solution that's actively maintained, it might be better to explore other CMS or billing platforms that offer better integration and support.
-
morrisanglis joined the community
-
Paul started following Prefill default name servers on order form
-
We have plans to add a bulk name server update option, as soon as v5.13 per https://dev.blesta.com/browse/CORE-5337
-
Prefill default name servers on order form
Panormitis replied to HostinPK's topic in Feature Requests
Until this feature is ready, if you are using Domain Manager you could set the correct nameservers beforehand for each TLD and these nameservers will be autofilled during ordering a domain name. Unfortunately TLDs would have to be edited one by one to set the nameservers, so if you has a lot of TLDs is a pain, but you could use an SQL query on the database to update the TLDs faster: -- Define your desired nameservers as serialized PHP array SET @ns_value := 'a:4:{i:0;s:14:"ns1.domain.com";i:1;s:14:"ns2.domain.com";i:2;s:0:"";i:3;s:0:"";}'; -- Update only package_meta entries with key 'ns' and an empty value UPDATE package_meta SET value = @ns_value WHERE `key` = 'ns' AND serialized = 1 AND (value = 'a:0:{}' OR value IS NULL); Backup the database first, use it at your own risk. Change ns1.domain.com & ns2.domain.com to your actual nameservers and change s:14 to the correct string length of your nameservers (eg. ns1.domain.com is 14 characters long, that's why s:14). -
Prefill default name servers on order form
Panormitis replied to HostinPK's topic in Feature Requests
Any updates on this? -
Luiz started following Invoices cached without customer data
-
I encountered an issue where invoices are being cached without the customer data, causing the PDF to be missing the customer name and address. I noticed some warnings on the log about billing being undefined in the invoice, which seems to be the root cause of the problem. I can consistently reproduce it by: as a customer, ordering a service, paying for it and immediately going back to the customer dashboard and selecting view and then downloading the invoice. It does not happen when I directly download the invoice without viewing it first. If I delete the cached version on the disk and then just download the invoice, it gets generated and cached properly. I have proforma invoices and invoice caching with PDF+JSON enabled. Versions: Blesta: 5.11.2 PHP: 8.3 MySQL: 8.0 OS: Debian Bookworm There is a cache file for a broken invoice attached, as well as the logs. broken.json general-warning-2025-05-26.log
- Earlier
-
Paul started following Braintree ACH Payments
-
We haven't yet had any other requests for ACH with Braintree, and I'm not certain if it's an option that is compatible with the current credit card processing API or if it would require a new implementation. If there is any interest in sponsoring the feature let us know.
-
Paul reacted to a post in a topic: Premadekb.com: Blesta Ready-Made Cpanel Knowledgebase Articles + Images
-
What's New in v2.5? Updated all articles and images. Fixed minor issues. Added intros and conclusions to each article. Made various changes in cPanel, DirectAdmin, and Plesk. Mozilla Thunderbird is now called Thunderbird. Renamed the deprecated version of SolusVM to SolusVM 1. Resolved image-related issues. Fixed small bugs. Many other improvements.
- 78 replies
-
- hosting kb
- premadekb
- (and 7 more)
-
tanveer_avian joined the community
-
Special Offer for Blesta users. Get all Videos at very special price - https://demotiger.com/offer.html
- 19 replies
-
- readymade blesta video
- video
- (and 6 more)
-
PHP 8.3 error on $modified_date->modify($modifier);
Panormitis replied to Panormitis's topic in Bugs
-
Paul started following PHP 8.3 error on $modified_date->modify($modifier);
-
What version of Blesta is this? Have you made any changes to the Date Format or Date Time Format under Settings > Company > General: Localization?
-
I'm not sure I follow, it sounds like it's more complex that just uploading an image through Blesta... it needs to then be transferred/uploaded to your own server and then be shown somewhere? If you're trying to interface with some other software and you want Blesta to accept an image from the client and then update it somewhere else, you could likely accomplish this with a custom plugin.
-
Hi DDChris, We haven't copied anything from our competitor, especially not states and countries so that is interesting. They were originally pulled in from official data sets per https://docs.blesta.com/pages/viewpage.action?pageId=10551368#Debugging/Tools-StatesandCountries but we are planning to make some changes/improvements here as some data has either changed or may not have been totally accurate from the original sources. Perhaps our competitor used the same original sources, I'm not sure. Also, different regions have different preferences for how the date is constructed. You can see the task we're planning to implement here https://dev.blesta.com/browse/CORE-5391 If you have any comments on this task, let us know. Regarding that library, I don't believe this is used at all for this purpose. States and Countries are stored in the database in the states and countries tables, respectively. So, these can be adjusted there if you prefer, depending on what kind of change you want to make. Codes can't be changed to something other than a code, so changes that relate to how the address is displayed (code, or name, etc) due to the region will likely need to wait for this task to be implemented. Cheers, Paul
-
If the emails are being sent every 5 minutes, then Blesta thinks the email is failing to be sent and so the invoice is not marked as sent. Are you certain the email was actually sent and received by the recipient? Click the email in the log to expand and show the details, it may include errors. Also check Settings > Company > Emails to make sure your mail server is configured correctly and that your From Email address on all your email templates is correct. Then check ../logs_blesta/ logs to see if there are any errors when an email is sent. Also check if you can send the email to your own email address in the invoices widget by checking the box next to the invoice and sending to an address you specify. To prevent an invoice email from going out Edit the invoice and uncheck the "Email" option. This option is deselected automatically when an email is successfully sent, but for some reason it appears the email is either not sent or there is some error with sending.
-
MiaJat joined the community
-
We are trying to remove the process of us having to upload the image for them. The idea is they can upload it to Blesta, our server can either pull the image location/download the image from Blesta and upload to our own server to show.
-
It sounds like these are images they are providing so that you can work on their website. If they can't email files to you, right now probably the best thing to do is for them to upload files like this via the ticket system. They can open a ticket or reply to a ticket and add attachments. You can download the files from the ticket. There is a plugin called "Client Documents", but this is for admins to attach files to their account that they can download, not the reverse of that.